عرض نموذج
جزء من قسم النماذج في رحلة Django على Coddy. الدرس 6 من 20.
تكتب الصفحة الموجودة في /events/new/ كل تسمية وكل حقل إدخال يدويًا، ويعرض EventForm الحقول نفسها مرة أخرى. يمكن للنموذج أن يرسم نفسه: مرّره إلى القالب واكتب {{ form }} داخل وسم <form>. صفحة تواصل:
<form method="post">
{% csrf_token %}
{{ form }}
<button type="submit">Send</button>
</form>يكتب {{ form }} تسميةً وحقل إدخال لكل حقل، وفق الترتيب الذي يحدده الصنف. يحصل كل حقل إدخال على name الخاص بالحقل وعلى id مثل id_email، بحيث تشير تسميته إليه. أما وسم النموذج والرمز والزر فتبقى تحت تحكمك.
النموذج الذي لم يُدخَل فيه شيء بعد هو الصنف الذي استُدعي من دون بيانات: ContactForm(). ويضع Django أيضًا السمة required على حقول الإدخال المطلوبة، لذا يمنع المتصفح إرسال حقل فارغ. أصبح مربع التاريخ الآن نصًا عاديًا، لأن Django يرسم DateField كحقل نصي. أدخل التواريخ بهذا الشكل: 2031-12-05.
التحدي
سهلدع EventForm ينشئ حقوله بنفسه.
- في
new_event، مرّرEventFormفارغًا إلى القالب باسمform. - في
new_event.html، استبدل التسميات الثلاث وحقول الإدخال بـ{{ form }}، الذي ينشئها نيابةً عنك. أبقِ وسم النموذج، والرمز، والزر، ورسالة الخطأ.
أضف فعالية بتاريخ 2031-12-05: أنشأ Django كل التسميات، وستصل إلى صفحة الفعالية.
جرّب بنفسك
{% extends "events/base.html" %}
{% block title %}Add an event{% endblock %}
{% block content %}
<h1>Add an event</h1>
{% if error %}
<p class="error">{{ error }}</p>
{% endif %}
<form method="post">
{% csrf_token %}
<label for="title">Title</label>
<input id="title" name="title">
<label for="date">Date</label>
<input id="date" name="date" type="date">
<label for="place">Place</label>
<input id="place" name="place">
<button type="submit">Add event</button>
</form>
{% endblock %}
جميع دروس النماذج
تدرّب بنفسك: Playground لـ Django