我有一个简单的项目,从我的/管理面板创建五个动态类别。使我的类别分别显示每个相应的内容
models.py:
from django.db import models
from django.template.defaultfilters import slugify
class TimeStampModel(models.Model):
created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
class Meta:
abstract = True
class Category(models.Model):
name = models.CharField(max_length=50)
slug = models.SlugField(editable=False)
def save(self, *args, **kwargs):
if not self.id:
self.slug = slugify(self.name)
super(Category, self).save(*args, **kwargs)
def __str__(self):
return self.name
这是我的views.py:
from django.shortcuts import render
from django.views.generic import TemplateView, DetailView
from .models import Product, Category
class SingleCatView(TemplateView):
template_name = 'products/single_category.html'
def get_context_data(self, **kwargs):
context = super(SingleCatView, self).get_context_data(**kwargs)
context['products'] = Product.objects.all().order_by('-created')[:6]
context['categories'] = Category.objects.all()
return context
class SingleProView(DetailView):
template_name = 'products/single_product.html'
model = Product
,你看到我的models.py permitme在我的Django管理面板创建自己的类别(现在我有5个类别创建)。我也可以在管理面板中创建“产品”并将其分配给各个类别。
其实我有我的项目适合显示我的产品在一个简单的template.html混合在一起,我可以看到所有没有过滤器。
urls.py
from django.conf.urls import patterns, include, url
from .views import SingleCatView, SingleProView
urlpatterns = patterns('',
url(r'^jbpfamilies/category/$', SingleCatView.as_view(), name='vista_category'),
url(r'^jbpfamilies/category/(?P<pk>\d+)/$', SingleProView.as_view(), name='vista_product'),
)
我的问题是如何让一个过滤器,允许我到每一个产品隔离与它的相应类别?因此,每个类别的链接都会显示其各自的产品。是这样的:
<ul>
<li><a href="#">Category1</a></li>
<li><a href="#">Category2</a></li>
<li><a href="#">Category3</a></li>
<li><a href="#">Category4</a></li>
<li><a href="#">Category5</a></li>
</ul>
我将不得不为每个类别做一个模板?或者我可以使用我的single_category.html所有类别,比如我用我的产品完成的,使用单个模板显示任何产品(我认为这是更好的形式)
如果您在我的views.py中看到,类类我有这样的:
context['products'] = Product.objects.all().order_by('-created')[:6]
我想这是可能的使用Product.objects.filter
,但我不知道我怎么能实现这个和如何建立我的级联的网址为动态类
现在我有一个simple_category.html显示所有类别的所有产品:
<!-- Start Content -->
<div id="content">
<div class="container">
<div class=" portfolio-page portfolio-4column">
<ul id="portfolio-list" data-animated="fadeIn">
{% for product in products %}
<li>
<img src="{{ product.pimage0.url }}" alt="{{ product.name }}" />
<div class="portfolio-item-content">
<span class="header">{{ product.name }}</span>
<p class="body">{{ product.size }}</p>
</div>
<a href="{% url 'products:vista_product' product.id %}"><i class="more">+</i></a>
</li>
{% endfor %}
</ul>
</div>
</div>
</div>
<!-- End Content -->
对不起,如果我的问题太大,但我真的很困惑,在这一点上仍然阅读django文档。
我发现很难理解你的实际问题是什么。您是否只需要一个类别列表,并链接到一组分类页面,每个分类页面都包含该类别的产品? – 2015-03-19 13:01:04
是的,先生,现在我有五个类别在我的管理面板中创建,我只想指定一个允许我在类别之间冲浪的列表,因为现在我可以在没有所需顺序的简单模板中看到所有内容。感谢评估! – Jhonny 2015-03-19 13:10:29