Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在浏览器中进行Django渲染?_Python_Html_Django_Rendering - Fatal编程技术网

Python 如何在浏览器中进行Django渲染?

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

我试图利用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 = 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标记中指定方法和操作