سؤال

و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. لذلك، لقد إزالة يستبعد وتجاهل تلك الحقول في القالب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top