سؤال للمبتدئين في جانغو:بالجنون مع نموذج للإنشاء والتحديث

StackOverflow https://stackoverflow.com/questions/611575

  •  03-07-2019
  •  | 
  •  

سؤال

نعم.لقد ربطت نفسي للتو بمحاولة إنشاء نموذج في 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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top