resolve() เป็นฟังก์ชันที่ใช้สำหรับแก้ไขเส้นทาง url ไปยังฟังก์ชันใน view.py ที่สอดคล้องกัน
form: Django function https://docs.djangoproject.com/en/1.8/ref/urlresolvers/
list/tests.py
[....]
class HomePageTest(TestCase):
def test_root_url_resolve_to_home_page_view(self):
found = resolve('/')#1
self.assertEqual(found.func, home_page)#2
จากสมุดที่แปล: #1#2 Django จะแก้ไขปัญหาที่ client ส่งมาในที่นี้คือ url
('/' = http://0.0.0.0:8000/ = http://localhost:8000/ =http://127.0.0.1:8000/)
แล้วค้นหาฟังก์ชันใน view.py ที่จะ map กันได้ จากนั้นก็ตรวจสอบการแก้ปัญหา(เมื่อเรียก'/') root ของ site นั้นแล้วพบ home_page ในนั้น
สรุป: ฟังก์ชัน def.. นี้คือดูว่าเส้นทาง url ที่รับมาในหน้า home ว่าตรงกับฟังก์ชันก์การทำงานใน veiw.py (home_page) หรือป่าว
ขออภัยในความมึนงงค่ะ.....ทั้งที่ตัวเองก็จดและแปลมา....โอ้เย่ โอ้โอเย่ \('^')/
Blog update : 15-5-15 11:30 โดยประมาณ
------------------------------------------------------------------------------------------------------------------------------
- commit 759c83a
figure1: แก้ไข model.py
เนื่องจากที่ commit ก่อนหน้าไม่สามารถ makemigrations ได้เพราะ ไม่ได้ใส่ default ให้ค่าที่ประกาศใน model
จะได้
Test3/model.py
[....]
class Item(models.Model):
question = models.TextField(default='')
choice1 = models.TextField(default='')
choice2 = models.TextField(default='')
choice3 = models.TextField(default='')
choice4 = models.TextField(default='')
[....]
ให้ input รับค่าจากที่ client สร้างคำถามและตัวเลือกเป็นชนิดข้อความ (TextField)
ศึกษาเพิ่มเติมได้ที่ Documentation Model field reference
figure2: แก้ไข view.py ให้รับค่า input ที่ client สามารถใส่ค่าลงไปได้
ค่าที่ใช้ในการตั้งคำถาม 1 คำถาม ประกอบด้วย
ตั้งคำถาม (question)
ตัวเลือกที่ 1 (choice1)
ตัวเลือกที่ 2 (choice2)
ตัวเลือกที่ 3 (choice3)
ตัวเลือกที่ 4 (choice4)
Blog update : 15-05-15 18:14
------------------------------------------------------------------------------------------------------------------------------
- committed 3e719c2
figure3: แก้ไขหน้า home.html ให้ client ใส่ค่าลงไปได้ และแสดงผลออกมาเมื่อกด create
<form name="questions" method="POST">#1
[....]
{% csrf_token %}
<input type="submit" value="Create" id="id_create">
<input Type = "hidden" value = "send" name = "create_send">
</form>
<table id="id_asktable">
<form name="choices" method="POST">#2
{% for item in items %}
[....]
{% endfor %}
<tr><td><input type="submit" value="Answer" id="id_ans">
<input Type = "hidden" value = "send" name = "ans_send"></td></tr>
{% csrf_token %}
</form>
</table>
#1 เป็น method = "POST" ที่ใช้ในการตั้งคำถามและสร้างตัวเลือกคำตอบ ซึ่งข้อความที่ client ใส่เข้าไปจะไปเก็บใน database เมื่อกดยืนยัน Create
#2 เป็น method="POST" ที่จะแสดงข้อมูลที่อยู่ใน database ออกมา หรือก็คือจะแสดงข้อมูลที่ client เคยบันทึกไว้ แล้วสามารถกดคลิกเลือกตัวเลือกของคำตอบที่ผู้ใช้จะเลือกได้โดยจะแสดงผลลัพธ์เมื่อเลือกแล้วกดยืนยัน Answer
figure4: ภาพของหน้า home.html เมื่อ run server
Blog update : 15-05-15 18:37
------------------------------------------------------------------------------------------------------------------------------
- committed 8bf117e
figure5: แก้ไข founctional_tests ให้ทดสอบการสร้างคำถามและตัวเลือกแล้วบันทึกข้อมูลได้
พร้อมคำอธิบาย
Blog update : 15-05-15 22:12
------------------------------------------------------------------------------------------------------------------------------
ไม่มีความคิดเห็น:
แสดงความคิดเห็น