Django:如何显示特定类别中的所有产品
在我的管理页面,我有2个应用程序。一个用于类别,另一个用于产品 在类别中我有PS3和PS4,在产品中..嗯。。我有产品 我想做的是显示该类别的所有产品。我该怎么做?在我的html页面上,我有一个菜单栏:Home、PS3和PS4。当有人单击PS3或PS4选项卡时,我希望它显示每个选项卡的产品,而不是创建单独的类别页面和详细信息页面 在我的数据库中,我有以下类别字段:name。在产品中,我有以下字段:标题、描述、图像、价格、库存 我有所有的页面工作,但我只需要显示的产品。我希望我明白了。我不能这样做。我将显示我的代码 模特儿们Django:如何显示特定类别中的所有产品,django,django-models,django-templates,django-views,python-3.2,Django,Django Models,Django Templates,Django Views,Python 3.2,在我的管理页面,我有2个应用程序。一个用于类别,另一个用于产品 在类别中我有PS3和PS4,在产品中..嗯。。我有产品 我想做的是显示该类别的所有产品。我该怎么做?在我的html页面上,我有一个菜单栏:Home、PS3和PS4。当有人单击PS3或PS4选项卡时,我希望它显示每个选项卡的产品,而不是创建单独的类别页面和详细信息页面 在我的数据库中,我有以下类别字段:name。在产品中,我有以下字段:标题、描述、图像、价格、库存 我有所有的页面工作,但我只需要显示的产品。我希望我明白了。我不能这样做
from django.db import models
# Create your models here.
class Category(models.Model):
name = models.CharField(max_length=30)
class Meta:
ordering = ["name"]
def __str__(self):
return self.name
class Products(models.Model):
category = models.ForeignKey(Category)
title = models.CharField(max_length=128)
description = models.TextField()
stock = models.IntegerField()
price = models.DecimalField(max_digits=6, decimal_places=2)
image = models.ImageField(upload_to="product_images", blank=True)
class Meta:
ordering = ["title", "description", "image", "price", "stock"]
def __str__(self):
return self.title
在我看来
from django.shortcuts import render, render_to_response, RequestContext
from django.http import HttpResponse
from category.models import *
def home(request):
return render_to_response("category/index.html",locals(),context_instance=RequestContext(request))
def ps3(request):
return render_to_response("category/ps3.html",locals(),context_instance=RequestContext(request))
def ps4(request):
return render_to_response("category/ps4.html",locals(),context_instance=RequestContext(request))
在我的URL.PY中
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', 'category.views.home', name='home'),
url('^ps3/', 'category.views.ps3', name ='ps3'),
url('^ps4/', 'category.views.ps4', name ='ps4'),
url(r'^admin/', include(admin.site.urls)),
)
context_实例参数是此处的重要部分,如您所见,它是一个RequestContext类,该类将请求作为其第一个参数,您可以在第二个参数中作为字典传递任何数据:
c = RequestContext(request, {
'foo': 'bar',
})
您需要利用它来传递要在模板中使用的数据。
还有,请学会不要重复自己的内容,并将其应用到URL/视图中。您想显示在哪里?在管理员或普通应用程序中?我不认为这一定能回答OP的问题。为什么不呢?如果不在上下文中,那么如何在模板中使用category呢?