الاستمارات
الاستمارات في جانغو :
جانغو تقدم خدمة انشاء استمارات والمقصود بالاستمارات هي مايحتويه الفورم form
input
textarea
and more
طبعا في هذا الدرس
قمنا بانشاء فورم لاضافة محتوى
سنقوم بالتعديل عليه بالكامل وهو سيكون درسنا لهذا اليوم ان شاء الله
إذهب الى مجلد التطبيق blog
وقم بانشاء ملف جديد باسم forms.py
سنقوم باستدعاء مكتبة الفورم في داخل الملف
from django import forms
بعد ان استدعيناها
لدينا كلاس داخل ملف models.py يحتوي على حقول سنستعين بهذا الكلاس لانشاء نفس الحقول ولكن كإستمارات
إذا نحتاج استدعاء هذا الكلاس من داخل ملف المودل كالتالي
from .models import TestBlog
بعد ان استدعينا مكتبة الفورم وكلاسنا الخاص بقاعدة البيانات
سنقوم الان بانشاء كلاس جديد وظيفة هذا الكلاس صناعة استمارات اعتمادا على كلاسنا بقاعدة البيانات
class CreateForm(forms.ModelForm):
class Meta:
model = TestBlog
fields = '__all__'
كلاس يرث من مودل فورم
وقمنا باختيار المودل الذي يجلب منه الحقول TestBlog
اما fields هنا اخترنا الحقول التي ستعرض واخترناها جميعا
وبالامكان تحديد نوع الحقول بالطريقة التالية
fields = 'title','post'
هكذا سيقوم بعرض حقلين فقط
اما لو اردنا ان نحذف حقل معين ونمنعه من العرض
exclude = 'author'
الان نمنع اسم الكاتب من العرض
ولكن نحن اخترنا fields = all
لكي نعرض جميع الحقول التي هي ثلاثه
بعد ان قمنا بانشاء الحقول نذهب الى ملفنا views.py
لكي نقوم بالتعديل على دالتنا create
قم بحذف الدالة السابقة وانشاء دالة جديدة بنفس الاسم وبداخلها
def create(request):
form = CreateForm
context = {
'form':form
}
return render(request, 'blog/create.html',context)
يوجد لدينا متغير جديد باسم form وقيمته هو الكلاس الذي في ملف forms.py
يجب علينا استدعاءه داخل ملف views.py
بالطريقه التالية
from .forms import CreateForm
طبعا بعد ماكتبنا دالتنا create فقط للتجربة وعرض المحتوى
نذهب الى ملفنا create.html
الموجود داخل templates/blog
نحذف كل مابداخله ونكتب الكود التالي
<form action="" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="add!">
</form>
نفس الكود السابق فقط حذفنا جميع الاستمارات بداخل الفورم input + texterea
ووضعنا بدالهم {{ form }}
الان نقوم بتشغيل السيرفر ونتوجه الى الرابط
http://127.0.0.1:8000/template/create/
تمام الان ظهرت لدينا الاستمارات
الان نرجع ونعدل دالتنا create داخل ملف views للتحقق من المدخلات وان الطلب من نوع بوست ونقوم بحفظ البيانات الى اخره من امور
الدالة بعد التعديل
def create(request):
form = CreateForm(request.POST or None)#نوع الطلب بوست
if form.is_valid():#شرط للتحقق من المدخلات
form.save()# الحفظ الى قاعدة البيانات
else:# نفي الشرط
form = CreateForm # يعيد الفورم للعرض لو لم يتحقق من الشرط
context = {# شرحناه كثير بالدروس السابقه
'form':form
}
return render(request, 'blog/create.html',context)
بعد ان كتبنا دالتنا
نذهب الى المتصفح ونضيف معلومات جديده
سيتم الاضافة بنجاح
##########################################
نأتي الان لكيفية فلترة المدخلات
نذهب الى الملف forms
وسنقوم بعمل فتره على الاسم كمثال فقط ان نجعل اي شخص يدخل اسمه ان يتحول الاسم تلقائيا لحروف كبيره
نضيف دالة
def clean_author(self):
author = self.cleaned_data['author'].upper()
return author
تلقائيا يقوم بتحويل المدخل الى حروف كبيره
اصبح ملف الفورم بالكامل كالتي
from django import forms
from .models import TestBlog
class CreateForm(forms.ModelForm):
class Meta:
model = TestBlog
fields = 'post','title','author'
def clean_author(self):
author = self.cleaned_data['author'].upper()
return author
ملف views جميع ماضفناه جديد بالكامل
from .forms import CreateForm
def create(request):
form = CreateForm(request.POST or None)
if form.is_valid():
form.save()
else:
form = CreateForm
context = {
'form':form,
}
return render(request, 'blog/create.html',context)
ملف create.html كاملا بعد التعديل
<form action="" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="add!">
</form>
محتوى الدورة
django | |
---|---|
1 | متطلبات قبل بدء الدورة |
2 | ماهو جانغو |
3 | انشاء أول مشروع جانغو |
4 | Hello World |
5 | التعامل مع القوالب |
6 | حقن القوالب |
7 | قواعد البيانات-1 |
8 | قواعد البيانات-2 |
9 | التعامل مع لوحة التحكم |
10 | عرض البيانات بالصفحة الرئيسية |
11 | عرض التفاصيل |
12 | اضافة محتوى |
13 | تحديث البيانات |
14 | الاستمارات الدرس الحالي |
15 | الاستمارات-2 |
16 | تسجيل الاعضاء |
17 | تسجيل الدخول |
18 | الفلاتر في جانغو |
19 | التعامل مع قواعد البيانات- متقدم ( الدرس الاخير) |
عن الدرس
0 إعجاب |
1 متابع |
0 مشاركة |
2391 مشاهدات |
منذ 6 سنوات |
التعليقات (0)
عرض المزيد.. جديد مقالاتي
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !