ฉันต้องการสร้างแบบฟอร์มด้วยตารางประเภทนี้:
คุณรู้ไหมว่าฉันสามารถทำเช่นนี้ได้อย่างไร? มีวิดเจ็ต Django Form สำหรับสิ่งนั้นหรือไม่
จริงๆ แล้วมันเป็นคำถามที่มีรายการตัวเลือกเดียวกันแสดงเป็นวิทยุในตาราง
ขอบคุณ,
นาทิม
ฉันต้องการสร้างแบบฟอร์มด้วยตารางประเภทนี้:
คุณรู้ไหมว่าฉันสามารถทำเช่นนี้ได้อย่างไร? มีวิดเจ็ต Django Form สำหรับสิ่งนั้นหรือไม่
จริงๆ แล้วมันเป็นคำถามที่มีรายการตัวเลือกเดียวกันแสดงเป็นวิทยุในตาราง
ขอบคุณ,
นาทิม
ฉันจะทำสิ่งนี้ด้วยแบบฟอร์ม django โดยมีหนึ่งฟิลด์ต่อบรรทัดบนกริดของคุณ โดยมี ChoiceField และ RadioSelect เป็นวิดเจ็ต:
line1 = forms.ChoiceField(widget=forms.RadioSelect, choices=TRUC)
line2 = …
จากนั้นคุณจะต้องค้นหาเค้าโครงเทมเพลตเพื่อแสดงผลอย่างถูกต้อง RadioSelect
สร้าง <ul>
โดยตัวเลือก eahc เป็น <li>
ป้ายกำกับตัวเลือกจะรวมอยู่ใน <li>
ซึ่งไม่ใช่สิ่งที่คุณต้องการที่นี่
ด้วยฟล็อปปี้ฟอร์ม คุณสามารถซับคลาส RadioSelect
และตั้งชื่อ cutom template_name (ดูที่เทมเพลต floppyforms/radio.html
) เพื่อละเว้นป้ายกำกับ คุณยังสามารถแก้ไขให้แสดงผล เช่น เซลล์ตาราง (<td>
s) แทน <li>
และทำให้มาร์กอัปแบบฟอร์มของคุณสร้างตารางที่มีป้ายกำกับในส่วนหัวของตาราง
import floppyforms as forms
class RadioSelect(forms.RadioSelect):
template_name = 'myforms/radio.html'
ใส่มาร์กอัปแถวที่คุณต้องการในเทมเพลตด้านบน
จากนั้นในเทมเพลตที่แสดงแบบฟอร์มของคุณ:
<form method="post" action="youraction">
<table>
<thead>
<td> <!-- put your form headers here --> </td>
</thead>
<tbody>
{% for field in form %}
<tr>
<td>{{ field.label_tag }}</td>
{{ field }}
</tr>
{% endfor %}
</tbody>
</table>
<!-- submit button -->
</form>
ก็แค่เรื่องของการใช้สไตล์ CSS สองสามสไตล์เพื่อให้ได้เลย์เอาต์ที่คุณต้องการ :)