python - كيفية الحصول على فورمسيت مضمنة متداخلة داخل نموذج في جانغو؟



django django-templates (1)

آمل أن يكون هذا السؤال لم يطلب حتى الآن، ولكن أريد أن أعرف ما إذا كان من الممكن أن يكون نموذجا الطبقية القائمة على كائن وأن يكون تشكيل مضمنة داخله لتحرير الكائنات ذات الصلة.

على سبيل المثال، لدي نموذج اتصال
class Contact(models.Model):
...

ونموذج الاتصالات
class Communication(models.Model):
contact = models.ForeignKey(Contact)

وأريد أن يكون لديك نموذج للاتصال مع شكل مضمنة متداخلة فيه لإدارة الاتصالات المتعلقة به.

هل من الممكن القيام بذلك مع المكونات الموجودة أو هل لدي حلم ميؤوس منه؟

إديت: أعرف أن لوحة المشرف تقوم بذلك، ولكن كيف يمكنني جعل العمل في طريقة عرض؟


بالطبع من الممكن - كيف تعتقد أن المشرف يفعل ذلك؟

ألق نظرة على وثائق النماذج المضمنة .

تحرير بعد تعليق بالطبع، تحتاج إلى إنشاء وتقديم كل من النموذج الأم و فورمسيت متداخلة. شيء مثل:

def edit_contact(request, contact_pk=None):
    if contact_pk:
        my_contact = Contact.objects.get(pk=contact_pk)
    else:
        my_contact = Contact()
    CommunicationFormSet = inlineformset_factory(Contact, Communication)
    if request.POST:
        contact_form = ContactForm(request.POST, instance=my_contact)
        communication_set = CommunicationFormSet(request.POST,
                                                 instance=my_contact)
        if contact_form.is_valid() and communication_set.is_valid():
            contact_form.save()
            communication_set.save()
    else:
        contact_form = ContactForm(instance=my_contact)
        communication_set = CommunicationFormSet(instance=my_contact)

    return render_to_response('my_template.html', 
                              {'form': contact_form, 'formset':communication_set})

والقالب يمكن أن تكون بسيطة مثل:

<form action="" method="POST">
  {{ form.as_p }}
  {{ formset }}
</form>

على الرغم من أنك ربما تريد أن تكون أكثر تفصيلا قليلا في كيفية جعله.





django-forms