में किसी पृष्ठ पर एकाधिक रूपों का उपयोग करके मैं Django में प्रति पृष्ठ एक से अधिक रूपों का उपयोग कैसे करूं?Django
Django
उत्तर
कृपया निम्नलिखित पहले से पूछा (और जवाब) प्रश्न देखें:
Django: multiple models in one template using forms
और
Proper way to handle multiple forms on one page in Django।
if request.POST():
a_valid = formA.is_valid()
b_valid = formB.is_valid()
c_valid = formC.is_valid()
# we do this since 'and' short circuits and we want to check to whole page for form errors
if a_valid and b_valid and c_valid:
a = formA.save()
b = formB.save(commit=False)
c = formC.save(commit=False)
b.foreignkeytoA = a
b.save()
c.foreignkeytoB = b
c.save()
आपके प्रश्नों की तारीख मैं तुम्हें वर्ग का उपयोग कर रहे ग्रहण करने के लिए जा रहा हूँ से आंकना:
आप वास्तव में क्या कह रहे हैं, यह एक ही पृष्ठ पर विभिन्न मॉडलों को संभालने के लिए मेरी पसंदीदा तरीका है पर निर्भर करता हैआधारित विचारों, नीचे मेरे अन्य जवाब यहाँ से कॉपी किया जाता है: Proper way to handle multiple forms on one page in Django
class NegotiationGroupMultifacetedView(TemplateView):
### TemplateResponseMixin
template_name = 'offers/offer_detail.html'
### ContextMixin
def get_context_data(self, **kwargs):
""" Adds extra content to our template """
context = super(NegotiationGroupDetailView, self).get_context_data(**kwargs)
...
context['negotiation_bid_form'] = NegotiationBidForm(
prefix='NegotiationBidForm',
...
# Multiple 'submit' button paths should be handled in form's .save()/clean()
data = self.request.POST if bool(set(['NegotiationBidForm-submit-counter-bid',
'NegotiationBidForm-submit-approve-bid',
'NegotiationBidForm-submit-decline-further-bids']).intersection(
self.request.POST)) else None,
)
context['offer_attachment_form'] = NegotiationAttachmentForm(
prefix='NegotiationAttachment',
...
data = self.request.POST if 'NegotiationAttachment-submit' in self.request.POST else None,
files = self.request.FILES if 'NegotiationAttachment-submit' in self.request.POST else None
)
context['offer_contact_form'] = NegotiationContactForm()
return context
### NegotiationGroupDetailView
def post(self, request, *args, **kwargs):
context = self.get_context_data(**kwargs)
if context['negotiation_bid_form'].is_valid():
instance = context['negotiation_bid_form'].save()
messages.success(request, 'Your offer bid #{0} has been submitted.'.format(instance.pk))
elif context['offer_attachment_form'].is_valid():
instance = context['offer_attachment_form'].save()
messages.success(request, 'Your offer attachment #{0} has been submitted.'.format(instance.pk))
# advise of any errors
else
messages.error('Error(s) encountered during form processing, please review below and re-submit')
return self.render_to_response(context)
एचटीएमएल टेम्पलेट निम्नलिखित प्रभाव के लिए है:
...
<form id='offer_negotiation_form' class="content-form" action='./' enctype="multipart/form-data" method="post" accept-charset="utf-8">
{% csrf_token %}
{{ negotiation_bid_form.as_p }}
...
<input type="submit" name="{{ negotiation_bid_form.prefix }}-submit-counter-bid"
title="Submit a counter bid"
value="Counter Bid" />
</form>
...
<form id='offer-attachment-form' class="content-form" action='./' enctype="multipart/form-data" method="post" accept-charset="utf-8">
{% csrf_token %}
{{ offer_attachment_form.as_p }}
<input name="{{ offer_attachment_form.prefix }}-submit" type="submit" value="Submit" />
</form>
...
यह: 'data = self.request.POST अगर' negotiationAttachment-submit 'self.request.POST में कोई नहीं' !!!! – zeraien
@zeraien? - क्या आप –
को स्पष्टीकरण दे सकते हैं जब एक ही पृष्ठ पर एकाधिक रूप होते हैं, सबमिट बटन पर एक कुंजी/मान जोड़ना मुझे दृश्य प्रसंस्करण कोड में विभिन्न रूपों को अलग करने की अनुमति देता था। तो मेरे मामले में मैंने एक छोटी सी विधि बनाई जिसे मैं प्रत्येक फॉर्म के लिए बुलाता हूं ... 'def _get_post (अनुरोध, उपसर्ग): वापसी अनुरोध। POST अगर अनुरोध में '% s-submit'% उपसर्ग है। अन्य कोई नहीं और प्रत्येक प्रपत्र सिर्फ POST डेटा प्राप्त करने के लिए कहता है: 'password_form = पासवर्डChangeForm (उपयोगकर्ता = request.user, डेटा = _get_post (अनुरोध, 'पासवर्ड'), उपसर्ग = 'पासवर्ड')' उस पंक्ति ने मुझे प्रेरणा दी ऐसा करने के लिए ;-) – zeraien
- 1. django-mutant django-admin
- 2. django + django- पंजीकरण
- 3. Django: प्रत्येक दृश्य (django)
- 4. django - django-taggit form
- 5. Django
- 6. Django
- 7. Django
- 8. django
- 9. Django
- 10. Django
- 11. Django
- 12. django
- 13. django
- 14. Django:
- 15. django
- 16. Django
- 17. django
- 18. django
- 19. Django
- 20. django
- 21. Django
- 22. Django
- 23. Django
- 24. Django -
- 25. Django
- 26. Django
- 27. Django
- 28. django
- 29. Django
- 30. Django
कृपया अधिक जानकारी प्रदान करें, अन्यथा हम आपकी सहायता नहीं कर सकते हैं। –
मुझे लगता है कि आप एक क्रिया है। – musiKk
संभावित डुप्लिकेट [Django में एक पृष्ठ पर एकाधिक रूपों को संभालने के लिए उचित तरीका] (http://stackoverflow.com/questions/1395807/proper-way-to-handle-multiple-forms-on-one-page-in- django) – Anto