python - Django Crispy Forms;不加载按钮
问题描述
我只是对 Crispy Forms 有疑问;我无法加载按钮。我检查了很多其他 StackOverflow 表单,但我遵循的所有示例似乎都不起作用。
例子forms.py
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit
from django import forms
from .models import ExampleModel
class ExampleModelForm(forms.ModelForm):
def __int__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.add_input(Submit('submit', 'Submit'))
class Meta:
model = ExampleModel
fields = ['content', 'title']
例子views.py
from django.shortcuts import render
from django.http import HttpResponseRedirect
from .forms import ExampleModelForm
def get_form(request):
if request.method == 'POST':
form = ExampleModelForm(request.POST)
if form.is_valid():
return HttpResponseRedirect('/success/')
else:
form = ExampleModelForm()
return render(request, 'example_form.html', {'form': form})
例子example_form.html
{% extends 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
{% crispy form %}
{% endblock %}
我的表单加载得很漂亮,但我就是无法显示按钮。我查看了文档,但看不出我在做什么不同。也许它不能很好地与 ModelForms 配合使用?我不知道。
我尝试将 的位置更改def__init__...
为低于Meta
班级。我定义super()
为super(ExampleModelForm, self)
和self.helper = FormHelper(self)
。
我什至尝试在 html 文件中更改{% crispy form %}
为。{% crispy form form.helper %}
它只是打破。
我也尝试过这个例子。只是没有什么对我有用。
设置:
Django:3.2.5
Crispy-Forms:1.12.0
解决方案
好的,我想通了,但我不知道为什么会这样。
class ExampleModelForm(forms.ModelForm):
helper = FormHelper()
helper.add_input(Submit('submit', 'Submit'))
class Meta:
model = ExampleModel
fields = ['content', 'title']
基本上你不需要def__init__(...
有人可以向我解释一下吗?
推荐阅读
- dart - 在画布上绘制许多圆圈与为它们创建自定义容器
- sql - 选择查询,对一行又一个 SQL 进行计算
- java - 使用子字符串java分隔数字
- python - Python Sounddevice 回调 time.inputBufferAdcTime 返回 0
- python - Python:为每个添加多个值
- puppeteer - Puppeteer:Shoutbox/MessageBoard 日志记录
- html - CSS 特异性优先级
- python - 使用 group by 更新表的列
- python - 添加分页,KeyError: 'url
- javascript - Firebase 数据库 webapp 读取所有用户名