python - 表单没有在 django 中呈现
问题描述
模型类是:
class Product(models.Model):
name=models.CharField(max_length=120)
address=models.CharField(max_length=120)
trek=models.CharField(max_length=120)
transid=models.CharField(max_length=20 ,default="")
表单类是
class formm(forms.ModelForm):
class Meta:
model=Product
fields=('name','address','trek','transid')
#fields="__all__"
# exclude=['title']
html 的表单部分是
<div class="jumbotron">
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input class="btn btn-primary" type="submit" value="SUBMIT"/>
</form>
</div>
视图中的功能是
def book(request):
form=formm()
if request.method == 'POST':
form = formm(request.POST)
if form.is_valid():
form.save()
return redirect('/')
else:
form=formm()
return render(request, 'trek/contact.html', {'form': form})
呈现的html是:
<!DOCTYPE html>
<html lang="en">
<head>
<body>
<div class="container">
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<input class="btn btn-primary" type="submit" value="SUBMIT"/>
</form>
</div>
</body>
</head>
</html>
表单未呈现。仅显示提交按钮。没有识别错误。
所有的导入都正确完成。我以前也做过这种类型的东西,但这从未发生过。
解决方案
您的返回渲染是否具有正确的模板 (trek/contact.html)?您说您的表单在其中,<div class="jumbotron">
但它在<div class="container">
呈现的 html 中。此外,您的标签在标签<body>
内呈现<head>
,我不确定这是否会导致某些浏览器出现问题。
推荐阅读
- android - Firestore 使用 Kotlin 检索数据时出错
- node.js - 从动态网站抓取特定数据的木偶到 Cheerio
- class - 颤振的语法含义
- php - Wordpress 的 WooCommerce 如何使用回调属性和获取产品规范
- python - Python中的Agrupate变量
- javascript - 我需要发送多个 ajax 请求并使用 jQuery 比较数据。这段代码有效,但太慢了。如何优化它?
- json - 使用 powershell 删除变量内的循环
- c - 关于 for 循环中的函数调用的问题
- spring - Thymeleaf:Bean 名称“#ids”的 BindingResult 和普通目标对象都不能用作请求属性
- c++ - 在 C++ 中使用宏进行运算符重载