0

I create 4 different multiple choice form in the same pages, the problem start when the forms stay togheter, the single form work but when i render all the forms in the views doesn't save and not write in the models, in the views I put messages and the code doesn't open the second if the view. form:

countries =  forms.ModelMultipleChoiceField(queryset=Nation.objects.filter(id__in=  [1,4,8]), 
required=False, widget=forms.CheckboxSelectMultiple)
class Meta:
    model=CountriesUser
    fields=['countries']

Views

@login_required
def CountriesNordView(request):
    if request.method=='POST':
        messages.success(request, 'first If')
        form_nord = CountriesNordForm(request.POST)
        form_center = CountriesCenterForm(request.POST)
        form_south= CountriesSouthForm(request.POST)
        form_topics=TopicsForm(request.POST)
        if form_nord.is_valid() and form_center.is_valid() and form_south.is_valid() and form_topics.is_valid():
            messages.success(request, 'Second If')
            instance=form_nord.save(commit=False)
            instance2=form_center.save(commit=False)
            instance3=form_south.save(commit=False)
            instance4=form_topics.save(commit=False)
            instance4.accounts=instance2.accounts=instance.accounts=instance3.accounts=request.user.id
            instance.save()
            instance2.save()
            instance3.save()
            instance4.save()

    else:
        messages.success(request, 'else')
        form_nord = CountriesNordForm(request.POST)
        form_center=CountriesCenterForm(request.POST)
        form_south=CountriesSouthForm(request.POST)
        form_topics=TopicsForm(request.POST)
    messages.success(request, 'out of condition ')
    con={'form_nord' : form_nord,
         'form_center': form_center,
         'form_south': form_south,
         'form_topics': form_topics
         }
    return render(request, 'users/preferences.html', context= con)
Shunya
  • 2,344
  • 4
  • 16
  • 28
Andrea
  • 1
  • 2

1 Answers1

0

You probably won't do it this way, because from what I have read, it is designed for one form.

See the answers to your question on SO #1 #2.

ttt
  • 300
  • 1
  • 6