2014-03-06 112 views
1

這是產品數據庫的模型。我發現,在模板上渲染產品時,產品與不同的測量結果相同。有沒有辦法將這些產品分組在一起,以便項目不會重複。如何對模板中的django模型字段進行排序/過濾

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) 

回答

0

如果兩個產品之間的唯一差別是測量,一個解決辦法是將抽象測量

一個。選項元組(例如options = MEASUREMENTS)或

b。一個測量模型,並將兩者聯繫起來,例如measurement = models.ForeignKey(&);

這實際上取決於您可能進行多少次測量。如果只有3-5個元組,則元組可以正常工作。如果有任何可能的話,一個模型會讓我覺得最有意義。

完成此操作後,您可以將類似產品整合到單個產品中,從而消除模板輸出中的重複項。

希望有所幫助。

+0

嘿,它絕對超過3-5。我如何處理現場數據?另外每個產品都有與之相關的唯一產品代碼。 – vvdect

+0

好的,所以你說的是他們真的是獨特的產品,但他們是相似的,主要的區別是測量。產品代碼是否像SKU一樣?一些數據的例子可能真的有助於這個...尤其是兩種相似的產品,如果您不想同時列出不同的測量結果。 – Walter

+0

嘿,我很難解釋這一點。這裏是excel產品列表的屏幕截圖。我希望這有助於: [Excel截圖](https://drive.google.com/file/d/0B4d4RhPuJVGMN3RPVXphbnBOWjA/edit?usp=sharing) – vvdect

相關問題