كيفية حفظ النماذج formset مضمنة في جانغو؟
-
05-07-2019 - |
سؤال
وFormsets يكون وسيلة. حفظ ()، وفي وثائق يقول لإنقاذ في وجهات النظر من هذا القبيل:
if request.method == "POST":
formset = BookInlineFormSet(request.POST, request.FILES, instance=author)
if formset.is_valid():
formset.save()
# Do something.
else:
formset = BookInlineFormSet(instance=author)
وأنا أتابع هذا، وأنه يعمل عند إنشاء الشركة الأم، ولكن أنا الحصول على استثناء في جانغو عندما يتم توفير النماذج الحالية. الوالد في الواقع يتم حفظ إلى قاعدة البيانات ويحدث الاستثناء عند حفظ النماذج ذات الصلة.
KeyError at /bcdetails/NewProds/1/
None
Request Method: POST
Request URL: http://rdif.local/bcdetails/NewProds/1/
Exception Type: KeyError
Exception Value:
None
Exception Location: /usr/lib/python2.5/site-packages/django/forms/models.py in save_existing_objects, line 403
Python Executable: /usr/bin/python
Python Version: 2.5.2
Python Path: ['/usr/lib/python2.5/site-packages/paramiko-1.7.4-py2.5.egg', '/usr/lib/python2.5/site-packages/Fabric-0.0.9-py2.5.egg', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages/Numeric', '/usr/lib/python2.5/site-packages/PIL', '/usr/lib/python2.5/site-packages/gst-0.10', '/var/lib/python-support/python2.5', '/usr/lib/python2.5/site-packages/gtk-2.0', '/var/lib/python-support/python2.5/gtk-2.0', '/usr/lib/site-python', '/home/www/rdif.com/test/']
Server time: Wed, 7 Jan 2009 23:18:19 -0700
وقضيت بعض الوقت في مصدر جانغو ولكن لا يمكن العثور على أي شيء هناك. هل أنا بحاجة إلى تكرار خلال كل formset وفقط حفظ النماذج التي تم تغييرها؟
المحلول
واكتشفت مشكلتي، وانه محرج.
في شكل نموذج الأم كنت قد exclude = ('...',)
في فئة ميتا، وكان واحدا من المجالات استبعاد حاسمة بالنسبة للعلاقات في inline_formsets. لذلك، لقد إزالة يستبعد وتجاهل تلك الحقول في القالب.
لا تنتمي إلى StackOverflow