تخطَّ إلى المحتوى

🎸 شرح Django

النماذج (Forms)

الدرس 15 من 25· ⏱ 1 دقائق قراءة

نموذج بسيط

from django import forms

class ContactForm(forms.Form):
    name = forms.CharField(max_length=100)
    email = forms.EmailField()
    message = forms.CharField(widget=forms.Textarea)

ModelForm (الأكثر استخدامًا)

يبني النموذج تلقائيًّا من نموذج البيانات:

from django.forms import ModelForm
from .models import Post

class PostForm(ModelForm):
    class Meta:
        model = Post
        fields = ["title", "body", "published"]

المعالجة في الـ View

def create_post(request):
    if request.method == "POST":
        form = PostForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect("post_list")
    else:
        form = PostForm()
    return render(request, "blog/form.html", {"form": form})

في القالب

<form method="post">
  {% csrf_token %}
  {{ form.as_p }}
  <button>إرسال</button>
</form>

⚠️ {% csrf_token %} إلزامي في كل نموذج POST لحماية CSRF.

🎯 التالي: لوحة الإدارة بعمق.

هل كان هذا الدرس مفيدًا؟