我试图在django 1.9中使用render(请求,' sell.thml',context),我使用mysql作为我的数据库。但我的模板中没有任何内容。我不知道为什么我不能使用render将我的上下文变量传递给模板。任何人都可以帮助我吗?
在我的view.py中:
def sellmainpage(request):
products=Product.objects.all()
context = {
"products": products,
}
return render(request, "sell.html", context)
在我的sell.html:
<div class="col-md-8 col-md-offset-2 col-sm-12 maincontent" style="padding-top:100px">
<div class="storefront_product_display" >
{% for product in products %}
<a href="{% url 'product_detail' %}">
<img src="{% static 'img/logo.png' %}">
<span class="storefront_product_name">{{ product.product }}</span>
<span class="storefront_product_companyname">{{ product.company }} </span>
{% endfor %}
</div>
</div>
在我的models.py中:
class Product(models.Model):
product=models.CharField(max_length=200)
company=models.ForeignKey(Company)
description=models.TextField()
price=models.DecimalField(decimal_places=2,max_digits=10)
stock=models.IntegerField(default=0)
def __str__(self):
return self.product
答案 0 :(得分:1)
向我们展示您的设置,您应该有一个文件夹“template”,并在html中
示例settings.py
BASE_DIR = os.path.dirname(os.path.realpath(__file__))
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'template'),],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'trabajo.context_processors.globales',
'trabajo.context_processors.menu',
'trabajo.context_processors.globales',
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.core.context_processors.static',
],
},
},
]
你view.py:
def sellmainpage(request):
products=Product.objects.all()
context = {
"products": products,
}
template = "template/sell.html"
render_to_response(template,context,context_instance=RequestContext(request))
sell.html
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
</body>
</html>
答案 1 :(得分:0)
而不是
return render(request, "sell.html", context)
试
loader.get_template('sell.html')
return HttpResponse(template.render(context,request))
不要忘记导入所需的东西。
from django.template import loader
from django.http import HttpResponse