Saikrishna Rachuri
Saikrishna Rachuri

Reputation: 11

I m getting error while am using crispy forms,

CrispyError at /cpm/domestic
|as_crispy_field got passed an invalid or inexistent field

views.py

from django import forms import datetime from django.utils import timezone from .models import DomesticTravelform

STATES = ( ('', 'Choose...'), ('Air', 'Flight'), ('Train', 'Train'), ) TRAV = ( ('', 'Choose...'), ('Hyderabad', 'Hyderabad'), ('Chennai', 'Chennai'), ) TYPE = ( ('', 'Choose...'), ('Firstclass', 'Firstclass'), ('Secondclass', 'Secondclass'), ('3 Tier AC', '3 Tier AC'), ) TRAVTYPE=( ('Domestic', 'Domestic'), ) Journey=( ('', 'Choose...'), ('One Way Journey', 'One Way Journey '), ('Return Journey', 'Return 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})

Travelform.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 %}

can you please help me i am getting same: error in raise CrispyError("|as_crispy_field got passed an invalid or inexistent field") crispy_forms.exceptions.CrispyError: |as_crispy_field got passed an invalid or inexistent field

Upvotes: 0

Views: 569

Answers (1)

revliscano
revliscano

Reputation: 2272

You have a typo in your Travelform.html file, specifically in this line.

{{ form.Trave_Type|as_crispy_field }}

Crispy tries to find a field named Trave_Type in your form definition, and since it doesn't find it (because it is actually Travel_Type), it raises the error you have been having.

Also, I would suggest you to rename the Class field to avoid any possible conflicts with the class keyword.

Upvotes: 1

Related Questions