[Python] How do I deal with the "|as_crispy_field got passed an invalid or inexistent field"...

Discussão em 'Python' iniciado por Stack, Fevereiro 8, 2025.

  1. Stack

    Stack Membro Participativo

    I am making a web app with a few pages. On one of the pages, I would like to have a form that looks something like this

    https://i.sstatic.net/WsOJ6.jpg

    However I keep getting an error message saying:


    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 [10/Jul/2019 23:21:12] "GET /year2 HTTP/1.1" 500 148042
    ​

    Here is my year2.html which appears to be where the error occurs:


    {% extends "HelloDjangoApp/layout.html" %}
    {% load crispy_forms_tags %}

    **HelloDjangoApp/year2.html**

    {% block content %}
    <form method="post" novalidate>
    {% csrf_token %}
    <div class="row">
    <div class="col-6">
    {{ form.name|as_crispy_field }}
    </div>
    <div class="col-6">
    {{ form.email|as_crispy_field }}
    </div>
    </div>
    {{ form.job_title|as_crispy_field }}
    {{ form.bio|as_crispy_field }}
    <button type="submit" class="btn btn-success">Calculate</button>
    </form>
    {% endblock %}



    For context, here is my views.py


    from django.shortcuts import render
    from django.http import HttpResponse
    from datetime import datetime
    from django.shortcuts import render # Added for this step
    from django.views.generic import CreateView
    from .models import Person

    class PersonCreateView(CreateView):
    model = Person
    fields = ('name', 'email', 'job_title', 'bio')


    def index(request):
    now = datetime.now()

    return render(
    request,
    "HelloDjangoApp/index.html", # Relative path from the 'templates' folder to the template file
    # "index.html", # Use this code for VS 2017 15.7 and earlier
    {
    'title' : "Exam Results Calculator",
    'message' : "Hello!",
    'content' : " on " + now.strftime("%A, %d %B, %Y at %X"),
    }
    )

    def about(request):
    return render(
    request,
    "HelloDjangoApp/about.html",
    {
    'title' : "Simply enter your scores to find out your average",
    'content' : "Example app page for Django."
    }
    )

    def year1(request):
    return render(
    request,
    "HelloDjangoApp/year1.html",
    {
    'title' : "1st Year Average",
    'content' : "First Year Stuff"

    }

    )

    def year2(request):
    return render(
    request,
    "HelloDjangoApp/year2.html",
    {
    'title' : "2nd Year Average",
    'content' : "Second Year Stuff"

    }

    )


    def year3(request):
    return render(
    request,
    "HelloDjangoApp/year3.html",
    {
    'title' : "3rd Year Average",
    'content' : "3rd Year Stuff"

    }

    )

    def year4(request):
    return render(
    request,
    "HelloDjangoApp/year4.html",
    {
    'title' : "4th Year Average",
    'content' : "4th Year Stuff"

    }

    )
    # Create your views here.




    AND my models.py

    from django.db import models

    # Create your models here.
    class Person(models.Model):
    name = models.CharField(max_length=130)
    email = models.EmailField(blank=True)
    job_title = models.CharField(max_length=30, blank=True)
    bio = models.TextField(blank=True)

    Continue reading...

Compartilhe esta Página