我的模型使用了清晰的表格,虽然表格看起来很普通, Bootstrap 没有显示,而且似乎没有按钮。即使添加按钮并单击它(刷新),也没有数据保存到数据库中。我尝试了很多方法。似乎出了什么问题?任何帮助将不胜感激。
表单.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 类。当您真正了解脆皮的使用方法时,您可以做很多事情,但要做到这一点…… 我在某个时候切换了,现在一切都像一个魅力
如果不发表评论,希望对您有所帮助:)
Edit
我刚刚在您的 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()} 中的“()”是否会破坏代码。
