Python 如何在浏览器中进行Django渲染?
我试图利用Django forms.ModelForm函数。但是,我无法在浏览器中进行渲染(Firefox和Chrome测试)。在对代码的两种浏览器检查中,table\form都不会显示,Django根本没有错误。html文件中唯一显示的是“保存按钮”,这里是否缺少一些内容 在Models.py中Python 如何在浏览器中进行Django渲染?,python,html,django,rendering,Python,Html,Django,Rendering,我试图利用Django forms.ModelForm函数。但是,我无法在浏览器中进行渲染(Firefox和Chrome测试)。在对代码的两种浏览器检查中,table\form都不会显示,Django根本没有错误。html文件中唯一显示的是“保存按钮”,这里是否缺少一些内容 在Models.py中 from django.db import models class Product_sell_create(models.Model): product_product_sell = m
from django.db import models
class Product_sell_create(models.Model):
product_product_sell = models.CharField(max_length=120)
product_price_sell = models.DecimalField(decimal_places=2, max_digits=500)
product_volume_sell = models.DecimalField(decimal_places=2, max_digits=500)
product_location_sell = models.CharField(max_length=120)
product_description_sell = models.TextField(blank=False, null=False)
Forms.py
from django import forms
from .models import Product_sell_create
class ProductName(forms.ModelForm):
class Meta:
model = Product_sell_create
fields = [
'product_product_sell',
'product_volume_sell',
'product_price_sell',
'product_location_sell',
'product_description_sell'
]
Views.py
from django.shortcuts import render
from .forms import ProductName
def products_create_view(request):
form = ProductName(request.POST or None)
if form.is_valid():
form.save()
form = ProductName()
context = {
'form': form
}
return render(request, "sell.html", context)
sell.html
{% include 'navbar.html' %}
<h1> Upper test</h1>
<form>
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save" />
</form>
<h1> TEST </h1>
{% block content %}
{% endblock %}
{%include'navbar.html%}
上限测试
{%csrf_令牌%}
{{form.as_p}}
试验
{%block content%}
{%endblock%}
只要这样做,您也会在发布对象时遇到问题:
views.py:
from django.shortcuts import render, redirect
from .forms import ProductName
from .models import Product_sell_create
def products_create_view(request):
if request.method == 'POST':
form = ProductName(request.POST)
if form.is_valid():
prod = form.save(commit=False)
prod.save()
return redirect('../thanks')
else:
form = ProductName()
context = {
'form': form
}
return render(request, "form_test.html", context)
def thanks_view(request):
query = Product_sell_create.objects.all()
return render (request, 'thanks.html', {'query' : query})
forms.py和models.py保持相同
sell.html:
<h1> Upper test</h1>
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save" />
</form>
<h1> TEST2 </h1>
上限测试
{%csrf_令牌%}
{{form.as_p}}
测试2
谢谢.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>{{ query }}</h1>
<h2>THANKS</h2>
</body>
</html>
文件
{{query}
谢谢
您是否在应用程序文件夹的“模板”文件夹中创建了“sell.html”
MyApp/templates/sell.html感谢您的回答,但遗憾的是,问题仍然存在,仍然有相同的结果。再次感谢您的回复,我已经复制了您上面提供的代码,但仍然没有呈现。我创建了Thanke.html文件,但是当我在浏览器中打开inspect时,{{query}}部分也不显示。看起来我的PyCharm根本不会呈现“{{}}”部分,即使它可以用于静态和块。谢谢,现在一切都很好!我忘了更改views.py,所以我调用了旧的sell_view函数,而不是新的!我的第一个答案!!你在使用模板继承吗?有零钱吗?你把积木弄乱了?否则,请安装django调试工具栏,查看正在使用哪些模板以及包含哪些上下文。谢谢你的回答。是的,它位于folderas lucasrf所说的地方——“返回”必须在
条款之外form.save()后面的form=ProductName()是不必要的-请记住在form标记中指定方法和操作