[英]Django Crispy forms not showing bootstrap/css or button
我的模型使用了脆脆的表格,虽然表格看起来很简单,引导程序没有出现,但似乎也没有按钮。 即使添加按钮并单击它(刷新),也没有数据保存到数据库中。 我尝试了很多方法。 似乎有什么问题? 任何帮助将不胜感激。
表格.py
class PlotForm(forms.ModelForm):
helper = FormHelper()
helper.form_tag = False
helper.form_method = 'POST'
class Meta:
model = Plot
fields = '__all__'
意见:
def plot_form(request):
return render(request, 'plot_form.html', {'form': PlotForm()})
html:
{% load crispy_forms_tags %}
<form action="" method="POST">
{% crispy form %}
<input type="submit" class="btn btn-default" value="save">
首先{% csrf_token %}
丢失。 第二如果我没记错的话,你需要使用{{ form|crispy }}
来加载表单。
第三,我建议使用Widget Tweaks
<form method='POST' action="/" enctype='multipart/form-data'>
{% load widget_tweaks %}
{% csrf_token %}
{{ form.first_name |add_class:"customCSS1 customCSS2" }}
{{ form.second_name |add_class:"customCSS3 customCSS4" }}
</form>
{{ form.media.js }}
使用此插件,您可以根据需要设置表单样式。 所有 CSS 类都有效。 Crispy 很好,但是您已经进入了文档,并且当您想要设置表单样式时,总会有一些解决方法。 使用 Widget Tweaks,您可以简单地应用任何 CSS 类。 当你真正了解脆皮的方式时,你可以做很多事情,但要做到这一点......我在某个点切换,现在一切都像魅力一样
如果不发表评论,希望能有所帮助:)
编辑
我刚刚在你的 views.py 中看到了一些东西。 据我所知,您没有引用正确的表格。
from appName.forms import PlotForm
def plot_form(request):
form = PlotForm(request.POST or None, request.FILES or None) #request files is only required when you want to upload a file
if form.is_valid():
instance = form.save(commit = False)
...
instance.save()
#messages.success(request, 'form was saved') #optional
context = {
'form':form,
}
return render(request, 'AppName/plot_form.html', context)
也许这会奏效。 您没有表单验证,我不确定{'form': PlotForm()}
处的“()”是否会破坏代码。
我也面临同样的问题。 通过在 Firefox 而不是谷歌浏览器上测试它来解决它。 显然,Chrome 不会为一些本地网络应用加载 CSS 样式。 遵循此 hack 后,它就可以工作了。 https://css-tricks.com/new-in-chrome-css-overview/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.