หน้าเว็บ

วันพฤหัสบดีที่ 14 พฤษภาคม พ.ศ. 2558

Test3

commit on bitbucket

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 โดยประมาณ


------------------------------------------------------------------------------------------------------------------------------
 

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
------------------------------------------------------------------------------------------------------------------------------

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
------------------------------------------------------------------------------------------------------------------------------
 

figure5: แก้ไข founctional_tests ให้ทดสอบการสร้างคำถามและตัวเลือกแล้วบันทึกข้อมูลได้
พร้อมคำอธิบาย
 
Blog update : 15-05-15 22:12
------------------------------------------------------------------------------------------------------------------------------

ไม่มีความคิดเห็น:

แสดงความคิดเห็น