类别作为可点击按钮Django
我有一个视图来呈现所有独特类别的列表。我希望它们是链接。打开一个新视图,显示属于该类别的所有项目。我不知道如何在URL模式上创建这些链接。 我也有一些问题,关于这方面的最佳行动方案是什么。我尝试的第一件事是让我的模型已经在我的ListView类中包含category字段和filter unique字段。我尝试的第二件事是创建一个包含所有类别的新模型 我的模特类别作为可点击按钮Django,django,django-models,django-forms,django-templates,django-views,Django,Django Models,Django Forms,Django Templates,Django Views,我有一个视图来呈现所有独特类别的列表。我希望它们是链接。打开一个新视图,显示属于该类别的所有项目。我不知道如何在URL模式上创建这些链接。 我也有一些问题,关于这方面的最佳行动方案是什么。我尝试的第一件事是让我的模型已经在我的ListView类中包含category字段和filter unique字段。我尝试的第二件事是创建一个包含所有类别的新模型 我的模特 class Items(models.Model): nombre = models.CharField(max_length=2
class Items(models.Model):
nombre = models.CharField(max_length=250)
descripcion = models.CharField(max_length=250)
codigo_proveedor = models.CharField(max_length=250)
# categoria = models.CharField(max_length=250)
categoria = models.ForeignKey('Categorias', on_delete=models.CASCADE)
c_minima = models.IntegerField()
c_actual = models.IntegerField()
proveedor = models.ForeignKey('Proveedores', on_delete=models.CASCADE)
active = models.BooleanField()
def __str__(self):
return self.nombre + ' ----- ' + str(self.categoria) + ' ----- ' + str(self.c_actual)
class Categorias(models.Model):
categoria = models.CharField(max_length=250, unique=True)
# slug = models.SlugField(max_length=250, unique=True)
active = models.BooleanField()
#
# def get_absolute_or_url(self):
# return '',(self.slug, )
def __str__(self):
return self.categoria
class Proveedores(models.Model):
nombre = models.CharField(max_length=250)
telefono = models.CharField(max_length=250)
direccion1 = models.CharField(max_length=250)
direccion2 = models.CharField(max_length=250, null=True)
active = models.BooleanField()
def __str__(self):
return self.nombre
我的观点
# CREA LOS BOTONES DE CLASIFICACIONES
# class ItemListView(ListView):
# model= Items
#
# def get_context_data(self,**kwargs):
# context = super(ItemListView, self).get_context_data(**kwargs)
# context['categoria'] = Items.objects.all().order_by('categoria').values('categoria').distinct()
# return context
class ItemListView(ListView):
model = Categorias
def get_context_data(self, **kwargs):
context = super(ItemListView, self).get_context_data(**kwargs)
context['categoria'] = Categorias.objects.all().order_by('categoria')
return context
感谢
categorias\u list.html中的帮助创建链接
{% for obj in object_list %}
<a href="{% url 'cat' obj.id %}">{{ obj.categoria }}</a>
{% endfor %}
在views.py
中为类别创建详细视图
class CategoriaDetail(DetailView):
model = Categorias
在categorias\u detail.html
中显示项目
{% for item in obj.iterms_set.all %}
{{ item.descripcion }}
{% endfor %}
您好,我实现了您提供给我的解决方案,我在/displayCategory/
中得到了“未找到cat”的反向信息“cat”不是有效的视图函数或模式名称。
知道了这是怎么回事url(r'^displayCategory/(?P\d+)/$),views.categateDetail.as_view(),name='cat'),
{% for item in obj.iterms_set.all %}
{{ item.descripcion }}
{% endfor %}