ส่วนการลบคำถาม
1 สร้าง template
<h1>Remove Question</h1>
<form action="{% url 'polls:remove' %}" method="post">
{% csrf_token %}
{% for question in latest_question_list %}
<input type="radio" name="question" value="{{ question.id }}">
<label for="{{ forloop.counter }}">{{ question.question_text }}</label>
<br>
{% endfor %}
<input type="submit" value="remove">
</form>
ให้ลบคำถามโดยการเลือกตัวเลือกแบบ radio ลบได้ครั้งละ 1 คำถาม
2.สร้างฟังก์ชันใน views.py
def removequestion(request):
question = Question.objects.all()
q_select = Question.objects.get(id=request.POST['question'])
q_select.delete()
return HttpResponseRedirect(reverse('polls:index'))
เมื่อมีการเรียกใช้งานฟังก์ชันให้ลบคำถามที่ถูกเลือกและแสดงหน้าลบคำถามเดิม
3. เพิ่ม url ที่เรียกใช้ฟังก์ชัน
from django.urls import path
from . import views
app_name = 'polls'
urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
path('remove/',views.removequestion,name='remove'),
]
เมื่อเปิดหน้าแรกจะเรียกใช้ template แสดงหน้าการลบคำถามและมีการเรียกไปที่ url remove และเรียกใช้งานฟังก์ชัน removequestion และ reverse กลับไปที่หน้าลบคำถามหน้าเดิม
หน้าแรกก่อนลบคำถาม
เมื่อเลือกคำถามและ remove จะแสดงหน้าเดิมที่ถูกลบคำถามออกไปแล้ว
ส่วนการเพิ่มคำถาม
1 สร้าง template
<h1>Create Question</h1>
<form action="{% url 'polls:Addquest' %}" method="post">
{% csrf_token %}
<input type="text" name="addq" value="{{ addq.id }}">
<br><br>
<input type="submit" value="Create">
</form>
<h2>Question now : </h2>
{% if latest_question_list %}
<ul>
{% for question in latest_question_list %}
<li><a href="{% url 'polls:detail' question.id %}">{{ question.question_text }}</a></li>
{% endfor %}
</ul>
{% endif %}
ใน template แบ่งเป็น 2 ส่วน คือ ส่วนที่ให้เพิ่มคำถามที่ใช้ input แบบ text และส่วนที่แสดงคำถามที่มีอยู่เพื่อดูการเปลี่ยนแปลงว่าคำถามมีการเพิ่มขึ้นหรือไม่
2. สร้างฟังก์ชันใน views.py
def Add(request):
q = Question(question_text=request.POST['addq'], pub_date=timezone.now())
q.save()
return HttpResponseRedirect(reverse('polls:index'))
ให้เพิ่มคำถามโดยคำถามที่เพิ่มให้รับจาก text ที่พิมพืลงในส่วนของ input และทำการเพิ่มคำถาม
3. เพิ่ม url ที่เรียกใช้ฟังก์ชัน
from django.urls import path
from . import views
app_name = 'polls'
urlpatterns = [
path('', views.IndexView.as_view(), name='index'),
path('add/',views.Add,name='Addquest'),
]
เมื่อเปิดหน้าแรกจะเรียกใช้ template แสดงหน้าการเพิ่มคำถามและมีการเรียกไปที่ url Addquest และเรียกใช้งานฟังก์ชัน Add และ reverse กลับไปที่หน้าเพิ่มคำถามหน้าเดิม
พิมพ์คำถามที่ต้องการเพิ่ม
เมื่อเลือก create จะแสดงหน้าเดิมที่ถูกเพิ่มคำถาม และแสดงคำถามที่ถูกเพิ่มขึ้นมา
ไม่มีความคิดเห็น:
แสดงความคิดเห็น