Django модель формы с помощью форм.ModelMultipleChoiceField
у меня есть ModelForm в моем приложении Django, которое использует формы.ModelMultipleChoiceField, который отображается в виде форм.Виджет CheckboxSelectMultiple в форме. Эта ModelForm используется для выбора / отмены выбора значений для отношения "многие ко многим". Вот проблема: когда вы снимаете все флажки и сохраняете форму, она не сохраняется. Если вы снимите все, кроме 1, он сохраняет правильно.
есть ли какие-либо трюки, которые я пропускаю здесь о модельных формах и отношениях "многие ко многим"? Я ошибка? Я новичок в Джанго. Спасибо заранее.
Настраиваемые Поля:
class NetworkMessageChoiceField(forms.ModelMultipleChoiceField):
    def label_from_instance(self, obj):
        return obj.display_message    
Модель Форма:
class MessageTemplateForm(forms.ModelForm):
    network_messages = NetworkMessageChoiceField(queryset=NetworkMessageTemplate.objects, 
                                             widget=forms.CheckboxSelectMultiple())        
    class Meta:
        model = UserProfile
        fields = ('network_messages',)
просмотр, который сохраняет форму:
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)
Edit:
мое поле формы отсутствовало Required=False.
class MessageTemplateForm(forms.ModelForm):
    network_messages = NetworkMessageChoiceField(queryset=NetworkMessageTemplate.objects, 
                                                 widget=forms.CheckboxSelectMultiple(),
                                                 required=False)        
    class Meta:
        model = UserProfile
        fields = ('network_messages',)
1 ответов
вы не вставили, как выглядит ваша модель, поэтому я предполагаю, что  в вашей модели. Если это так, то при попытке отправить форму со значением этого поля как NULL (пустой), тогда form.is_valid() не возвращает True и, следовательно,form.save() никогда не выполняется.
вы пробовали выполнять этот материал из интерактивной оболочки, создавая экземпляр формы и пытаясь вручную save() это?
