#html #django #django-views
Вопрос:
У меня странная ошибка с моими формами. На странице я должен передать 2 отдельные формы, у 1-й вообще нет проблем , и я могу добавить запись в БД, 2-я выдает мне ошибку с просьбой заполнить необходимые данные 1-й формы. Словарь СООБЩЕНИЙ выглядит нормально
Вот журнал:
lt;QueryDict: {'csrfmiddlewaretoken': ['lvt5Ph2SA1xxFK4LMotdHOWk2JuZzYDo0OKWc77rKICYKYmemy3gl0dBphnRNcFb'], 'pk_atto': ['1.1'], 'pk_persona': ['1'], 'capacita': ['11'], 'Aggiungi_persona': ['persona'], 'tipo': ['fondo']}gt; lt;ul class="errorlist"gt;lt;ligt;pk_particellalt;ul class="errorlist"gt;lt;ligt;This field is required.lt;/ligt;lt;/ulgt;lt;/ligt;lt;/ulgt;
взгляды:
if request.method == 'POST': if("Aggiungi_particella" in request.POST): save_atto = AttiPartenzeParticelleForm(request.POST) else: save_atto = AttiPartenzePersoneForm(request.POST) print(request.POST) print(save_atto.errors) if save_atto.is_valid(): save_atto.save() return redirect('/aggiungi_atto_partenza' '/' str(save_atto['pk_atto'].value()))
формы:
class AttiPartenzeParticelleForm(ModelForm): pk_atto = forms.ModelChoiceField(queryset=Atti.objects.all(), widget=forms.Select (attrs={'class': 'form-control'})) pk_particella = forms.ModelChoiceField(queryset=Particelle.objects.all(), widget=forms.Select (attrs={'class': 'form-control'})) capacita = forms.CharField(max_length=30, widget=forms.NumberInput (attrs={'class': 'form-control'})) tipo = forms.CharField(max_length=30, initial="fondo", widget=forms.TextInput (attrs={'class': 'form-control'})) class Meta: model = Acquisizioni_Cessioni_particella fields = '__all__' class AttiPartenzePersoneForm(ModelForm): pk_atto = forms.ModelChoiceField(queryset=Atti.objects.all(), widget=forms.Select (attrs={'class': 'form-control'})) pk_persona = forms.ModelChoiceField(queryset=Persone.objects.all(), widget=forms.Select (attrs={'class': 'form-control'})) capacita = forms.CharField(max_length=30, widget=forms.NumberInput (attrs={'class': 'form-control'})) tipo = forms.CharField(max_length=30, initial="fondo", widget=forms.TextInput (attrs={'class': 'form-control'})) class Meta: model = Acquisizioni_Cessioni_particella fields = '__all__'
и HTML
lt;div id="particella" class="content-section d-flex justify-content-center mt-5"gt; lt;form action="" method="POST" id="particella_f"gt; {% csrf_token %} lt;fieldset class="form-group"gt; lt;div style="visibility:hidden"gt; {{ form.pk_atto|as_crispy_field }} lt;/divgt; lt;div class="row"gt; lt;div class="col-8"gt; {{ form.pk_particella|as_crispy_field }} lt;/divgt; lt;div class="col-2"gt; {{ form.capacita|as_crispy_field }} lt;/divgt; lt;div class="col-4 d-flex justify-content-center"gt; lt;button form="particella_f" class="btn btn-outline-primary btn-lg mt-5" type="submit" name="Aggiungi_particella" value="particella"gt; AGGIUNGI PARTICELLA lt;/buttongt; lt;/divgt; lt;div style="visibility:hidden"gt; {{ form.tipo|as_crispy_field }} lt;/divgt; lt;/divgt; lt;/fieldsetgt; lt;/formgt; lt;/divgt; lt;div id="persona" class="content-section d-flex justify-content-center mt-5"gt; lt;form action="" method="POST" id="persona_f"gt; {% csrf_token %} lt;fieldset class="form-group"gt; lt;div style="visibility:hidden"gt; {{ persona.pk_atto|as_crispy_field }} lt;/divgt; lt;div class="row"gt; lt;div class="col-8"gt; {{ persona.pk_persona|as_crispy_field }} lt;/divgt; lt;div class="col-2"gt; {{ persona.capacita|as_crispy_field }} lt;/divgt; lt;div class="col-4 d-flex justify-content-center"gt; lt;button class="btn btn-outline-primary btn-lg mt-5" form="persona_f" type="submit" name="Aggiungi_persona" value="persona"gt; AGGIUNGI PERSONA lt;/buttongt; lt;/divgt; lt;div style="visibility:hidden"gt; {{ form.tipo|as_crispy_field }} lt;/divgt; lt;/divgt; lt;/fieldsetgt; lt;/formgt; lt;/divgt;
у кого-нибудь есть какие-нибудь идеи? тнх
Комментарии:
1. Обе формы указывают на модель Acquisizioni_Cessioni_particella. Является ли pk_particella обязательным полем в модели, а не во второй форме?
2. pk_particella присутствует только в модели Acquisizioni_Cessioni_particella
3. И обе формы ссылаются на эту модель. Таким образом, проблема в том, что вторая форма нуждается в этом поле.