python - 如何解决 Django Cripy-forms 模板语法错误

标签 python html django django-crispy-forms

嘿,我正在尝试学习 Django 脆皮表单,因此当我尝试放置/注入(inject) {load Cripy_forms_tags %} 时,我收到以下错误

错误消息

TemplateSyntaxError at /login/

'crispy_form_tags' is not a registered tag library. Must be one of:
admin_list
admin_modify
admin_urls
cache
crispy_forms_field
crispy_forms_filters
crispy_forms_tags
crispy_forms_utils
i18n
l10n
log
static
tz

代码如下:HTML

{% load crispy_form_tags %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0   /css/bootstrap.min.css"  integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk"  crossorigin="anonymous">
    <title>Login</title>
</head>
<body>

    {% crispy form  %}


</body>
</html>

models.py

from django.db import models
from phonenumber_field.modelfields import PhoneNumberField


class Accounts(models.Model):

    name = models.CharField(max_length=100, null=False, blank=False)
    last_name = models.CharField(max_length=100,null=False, blank=False)
    phone = PhoneNumberField(null=False, blank=False, unique=True)
    email = models.EmailField(null=False, blank=False, unique=True)
    password = models.CharField(null=False, blank=False, max_length=100)
    verify_password = models.CharField(null=False, blank=False, max_length=100)


    def __str__(self):
        return self.name

forms.py

class UserAccount(forms.Form):

class Meta:
    terms = (

        ('agree', 'Agree'),
        ('disagree', 'Disagree')
    )
    model = Accounts
    password = forms.CharField(widget=forms.PasswordInput())
    verify_password = forms.CharField(widget=forms.PasswordInput())
    terms_and_conditions = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=terms) 
    fields = (

        'name',
        'last_name',
        'phone',
        'email',
        'password',
        'verify_password',
        'terms_and_conditions'
    )


def __init__(self, *args, **kwargs):
    super().__init__(self, *args, **kwargs)

    self.helper = FormHelper
    self.helper.form_method = 'POST'

    self.helper.layout = (

        'name', 
        'last_name',
        'phone', 
        'email', 
        'password',
        'verify_password',
        'terms_and_conditions',
        Submit('submit', 'Submit', css_class='btn-success')
    )

如何解决此错误?

最佳答案

这是因为您尚未在设置中的 INSTALLED_APPS 中添加 Crispy Form 标记。在其中添加此 'crispy_forms' 应该可以解决问题,例如

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.sessions',
    'django.contrib.staticfiles',
    'crispy_forms',
]

在 templates.html 中添加这些清晰的标签应该可以正常工作。

{% load crispy_forms_tags %}
  {% csrf_token %}
{% crispy form %}

您可以从here查看更多内容

关于python - 如何解决 Django Cripy-forms 模板语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63079667/

相关文章:

python - 用于生成视频摘要的优化方法?

python - scipy 与 matlab 中的 dblquad 给出不同的结果

php - 无法将 php 页面转换为 PDF

python - 我应该如何在 Django 中为表单编写测试?

django - 在 Django Admin 中保存后如何保留过滤器选择

django - 通过数据迁移添加默认标签

python - 创建debian包,将python脚本安装到Ubuntu的/usr/local/bin下

html - 带有 Bootstrap 的 td 中的全高输入

html - 删除元素 p 中的空格

python - 在 MAC OS X 10.9 上安装 NLTK 真的很困难