Я получаю ошибку, когда использую хрустящие формы, - PullRequest
0 голосов
/ 25 апреля 2020
CrispyError at /cpm/domestic
|as_crispy_field got passed an invalid or inexistent field

views.py

из django импорт форм импорт datetime из django .utils импорт часового пояса из .models import DomesticTravelform

STATES = (('', ' Выберите ... '), (' Воздух ',' Полет '), (' Поезд ',' Поезд '),) TRAV = ((' ',' Выбрать ... '), (' Хайдарабад ',' Хайдарабад '), (' Chennai ',' Chennai '),) TYPE = ((', 'Choose ...'), ('Firstclass', 'Firstclass'), ('Secondclass', 'Secondclass'), ( '3 Tier A C', '3 Tier A C'),) TRAVTYPE = (('Domesti c', 'Domesti c'),) Journey = (('', 'Выбрать. .. '), («Путешествие в один конец», «Путешествие в один конец»), («Обратное путешествие», «Путешествие в обратный путь»),)

class Travelform(forms.Form):
    Mobile_No = forms.IntegerField()
    Request_Date=forms.DateField(initial=datetime.date.today)
    Purpose_Description = forms.CharField(max_length=100)
    Travel_Type = forms.ChoiceField(choices=TRAVTYPE)
    Travel_Date   = forms.DateField(initial=datetime.date.today)
    Journey_Type=forms.ChoiceField(choices=Journey)
    Mode        =forms.ChoiceField(choices=STATES)
    From_Place  =forms.ChoiceField(choices=TRAV)
    To_Place    =forms.ChoiceField(choices=TRAV)
    Class       =forms.ChoiceField(choices=TYPE)
    Booking_Type=forms.CharField(max_length=100)
    Total_Period =forms.IntegerField()

def Travel(request):
    form=forms.Travelform()
    if request.method=='POST':
        form=forms.Travelform(request.POST)
        if form.is_valid():
            print("data inserted")
            return render(request,'Travelform.html',{'form':form})
    return render(request,'Travelform.html',{'form':form})

Форма путешествия. html

{% extends 'base1.html' %}
{% load crispy_forms_tags %}

{% block content %}
<div class="container text-center">
    <h1>Domestic Travel Requisition</h1>
</div>
<form method="post">
  {% csrf_token %}
  <div class="form-row">
    <div class="form-group col-md-2 mb-0">
      {{ form.Mobile_No|as_crispy_field }}
    </div>
    <div class="form-group col-md-2 mb-0">
        {{ form.Request_Date|as_crispy_field }}
    </div>
  </div>
  {{ form.Trave_Type|as_crispy_field }}
  {{ form.Purpose_Description|as_crispy_field }}

  <div class="form-row">
    <div class="form-group col-md-6 mb-0">
        {{ form.Travel_Date|as_crispy_field }}
    </div>
    <div class="form-group col-md-6 mb-0">
      {{ form.Journey_Type|as_crispy_field }}
    </div>
    <div class="form-group col-md-2 mb-0">
      {{ form.From_Place|as_crispy_field }}
    </div>
    <div class="form-group col-md-2 mb-0">
      {{ form.To_Place|as_crispy_field }}
    </div>
    <div class="form-group col-md-2 mb-0">
      {{ form.Class|as_crispy_field }}
    </div>
    <div class="form-group col-md-2 mb-0">
      {{ form.Booking_Type|as_crispy_field }}
    </div>
    <div class="form-group col-md-2 mb-0">
      {{ form.Mode|as_crispy_field }}
    </div>
    <div class="form-group col-md-2 mb-0">
      {{ form.Total_Period|as_crispy_field }}
    </div>
  </div>
  <button type="submit" class="btn btn-primary">Submit</button>
</form>
{% endblock %}

не могли бы вы помочь мне, я получаю то же самое: ошибка при повышении CrispyError ("| as_crispy_field получил недопустимое или несуществующее поле") crispy_forms.exceptions.CrispyError: | as_crispy_field получил недопустимое или несуществующее поле

1 Ответ

0 голосов
/ 25 апреля 2020

В вашем файле Travelform. html есть опечатка, особенно в этой строке.

{{ form.Trave_Type|as_crispy_field }}

Криспи пытается найти поле с именем Trave_Type в определении формы, и, поскольку оно не находит его (потому что оно на самом деле Travel_Type), оно вызывает ошибку, которая у вас возникла .

Также я бы предложил переименовать поле Class, чтобы избежать возможных конфликтов с ключевым словом class.

...