【发布时间】:2018-09-26 15:20:04
【问题描述】:
我有一个视图来呈现所有独特类别的列表。我希望它们成为链接。打开一个新视图,显示属于该类别的所有项目。我不知道如何在 urlpatterns 上创建这些链接。 我也有一些关于什么是最好的行动方案的问题。我尝试的第一件事是让我的模型已经包含类别字段并在我的 ListView 类上过滤唯一字段。我尝试的第二件事是创建一个包含所有类别的新模型。
我的模型.py
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
我的意见.py
# 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
感谢您的帮助
【问题讨论】:
标签: django django-models django-forms django-templates django-views