मेरे पास मेरे Django ऐप में एक मॉडलफॉर्म है जो एक फॉर्म का उपयोग करता है। मॉडेल मल्टीप्लस चॉइसफ़िल्ल्ड, जो फ़ॉर्म के रूप में प्रदर्शित होता है। फॉर्म पर चेकबॉक्स चयन करें। इस मॉडलफॉर्म का उपयोग कई से अधिक संबंधों के लिए मूल्यों का चयन/चयन करने के लिए किया जाता है। यहां समस्या है: जब आप सभी चेकबॉक्स अनचेक करते हैं और फॉर्म को सहेजते हैं, तो यह सहेजता नहीं है। यदि आप 1 को छोड़कर सभी को अनचेक करते हैं, तो यह ठीक से सहेजता है।फॉर्मों का उपयोग करके Django मॉडल फॉर्म। मॉडेल मल्टीप्लस चॉइसफ़िल्ल्ड
क्या कोई चाल है जो मैं यहां मॉडल रूपों और कई से अधिक संबंधों के बारे में याद कर रहा हूं? क्या मुझे एक बग का सामना करना पड़ रहा है? मैं Django के लिए नया हूँ। अग्रिम में धन्यवाद।
कस्टम फ़ील्ड:
class NetworkMessageChoiceField(forms.ModelMultipleChoiceField):
def label_from_instance(self, obj):
return obj.display_message
मॉडल प्रपत्र:
def save_message_templates(request, extra_context=dict()):
try:
profile_obj = request.user.get_profile()
except ObjectDoesNotExist:
profile_obj = UserProfile(user=request.user)
if request.method == 'POST':
form = MessageTemplateForm(request.POST, instance=profile_obj)
if form.is_valid():
form.save()
return redirect('/')
return index(request, message_template_form=form)
संपादित करें::
मेरे लिए
class MessageTemplateForm(forms.ModelForm):
network_messages = NetworkMessageChoiceField(queryset=NetworkMessageTemplate.objects,
widget=forms.CheckboxSelectMultiple())
class Meta:
model = UserProfile
fields = ('network_messages',)
देखें कि प्रपत्र की बचत होती है आरएम क्षेत्र गायब था = गलत।
class MessageTemplateForm(forms.ModelForm):
network_messages = NetworkMessageChoiceField(queryset=NetworkMessageTemplate.objects,
widget=forms.CheckboxSelectMultiple(),
required=False)
class Meta:
model = UserProfile
fields = ('network_messages',)
धन्यवाद! वह पूरी तरह से जवाब था। मैंने अभी अपना प्रश्न पोस्ट करने के बाद इसे समझ लिया। मैं अपने फार्म फ़ील्ड पर आवश्यक = गलत था! \t वर्ग MessageTemplateForm (forms.ModelForm): \t \t network_messages = NetworkMessageChoiceField (क्वेरीसमूह = NetworkMessageTemplate.objects, \t \t \t \t \t \t \t \t \t \t \t \t \t विजेट = forms.CheckboxSelectMultiple(), \t \t \t \t \t \t \t \t \t \t \t \t \t आवश्यक = false) \t \t वर्ग मेटा: \t \t \t मॉडल = UserProfile \t \t \t क्षेत्रों = ('network_messages',) – Rob
बहुत बढ़िया! सेवा का होकर ख़ुशी है। – jathanism