如何在模板中对django模型字段进行排序/过滤

时间:2014-03-06 15:12:06

标签: django django-models django-templates django-views

这是产品数据库的模型。在模板上渲染产品时,我发现只有不同测量的产品是相同的。有没有办法将这些产品组合在一起,这样物品就不会重复。

class Product(models.Model):
      product_code = models.CharField(max_length=60, null=True, blank=True)
      type = models.CharField(max_length=120, null=True, blank=True)
      product = models.CharField(max_length=120, null=True, blank=True)
      standard = models.CharField(max_length=120, null=True, blank=True)
      measurement = models.CharField(max_length=120, null=True, blank=True)
      brand = models.CharField(max_length=120, null=True, blank=True)
      photo = models.ImageField(upload_to='media', null=True, blank=True)
      price = models.DecimalField(max_digits=100, decimal_places=3, null=True, blank=True)

     class Meta:
          verbose_name_plural = "Product"
          ordering = ["id"]
     def get_absolute_url(self):
          return reverse('product')
     def __unicode__(self):
          return u'%s %s %s %s %s %s  %s' % (self.id, self.product_code, self.type, 
                                self.product, self.standard, 
                                self.measurement, self.brand, self.photo, self.price)

1 个答案:

答案 0 :(得分:0)

如果两个产品之间的唯一区别是测量,一个解决方案是将测量抽象为

  

一个。选项元组(例如,options = MEASUREMENTS)或

     

湾测量模型并将两者联系起来,例如,measurement = models.ForeignKey(...)

这实际上取决于您可能拥有的测量数量。如果只有3-5,那么元组就可以了。如果有可能的话,我认为模型会更有意义。

完成此操作后,您可以将类似产品整合到单个产品中,从而消除模板输出中的重复项。

希望有所帮助。