سؤال للمبتدئين في جانغو:بالجنون مع نموذج للإنشاء والتحديث
سؤال
نعم.لقد ربطت نفسي للتو بمحاولة إنشاء نموذج في Django يمكنني استخدامه إما لإدخال بيانات حول سجل جديد أو تحديث سجل موجود.
هل يمكن لأي شخص أن يرسم الأشياء الصحيحة التي يجب أن أمتلكها في النماذج وطرق العرض وعناوين URL الخاصة بي إذا كان لدي هذا النموذج؟:
class Person(models.Model) :
name = models.CharField()
age = models.IntegerField()
في صفحة أخرى، أريد رابطًا لنموذج يتيح لي إنشاء مثيل جديد لشخص ما أو تعديل مثيل موجود.
الأشياء التي أشعر بالحيرة منها:
هل أحتاج إلى سطرين مميزين في urls.py، أحدهما للربط بالنموذج الفارغ، وليس لتمرير المعرف والآخر للربط بالنموذج عندما أقوم بتمرير المعرف؟
هل أحتاج إلى طريقتي عرض مختلفتين، واحدة لتلقي النموذج قبل حفظ المثيل، والأخرى عند وجود المثيل؟
أنا متأكد من أنني رأيت هذا يتم باستخدام رابط واحد ووظيفة واحدة في ملف view.py، ولكن يبدو أنني لا أستطيع القيام بذلك بشكل صحيح بعد الآن.ما لا يبدو أنه يعمل هو محاولة إرسال عنوان url مع المعرف
/edit/id
ودون
/edit/
إلى نفس وظيفة العرض مع الوسيطة الافتراضية للمعرف
def edit(request,id=0) :
blah
إذن ما هو يمين طريقة للقيام بذلك؟
هتافات.فيل
المحلول
قم بإعداد urls.py الخاص بك لالتقاط متغير المعرف إذا تم تضمينه في عنوان url، ثم تحقق من وجود قيمة فارغة في ملف view.py الخاص بك
يمكن أن يبدو urls.py الخاص بك كما يلي:
(r'^edit/(?P<person_id>\w+)/$', 'mysite.myapp.views.edit_person'),
ثم، في ملف views.py الخاص بك:
def edit_person(person_id=None):
if(person_id): #show populated form
else: # show empty form