[英]Filtering models Django
我的models.py中有這些模型:
class Category(models.Model):
main_category= models.ForeignKey(HovedKategori, on_delete=models.CASCADE)
name= models.CharField(max_length=200)
def __str__(self):
return self.name
class UnderCategori(models.Model):
main_kategory= models.ForeignKey(Category, on_delete=models.CASCADE)
supplier = models.CharField(max_length=200)
price = models.IntegerField()
title = models.CharField(max_length=200)
img = models.CharField(max_length=200)
info= models.CharField(max_length=200)
link= models.CharField(max_length=200)
def __str__(self):
return str(self.supplier ) + " " + str(self.title)
如何不重復查詢所有不同類別的供應商? 我的意思是,如果我有 10 個不同的供應商和 500 種產品,我該如何查詢這 10 個不同的供應商。 我也不確定這是否是我應該使用的正確數據結構,如果有任何提示,那也將不勝感激。
我建議將供應商從類別中分離出來,如下所示:
class Supplier(models.Model):
name = models.CharField(max_length=200)
def __str__(self):
return self.name
class Category(models.Model):
main_category = models.ForeignKey(HovedKategori, on_delete=models.CASCADE)
name = models.CharField(max_length=200)
def __str__(self):
return self.name
class UnderCategori(models.Model):
main_kategory= models.ForeignKey(Category, on_delete=models.CASCADE)
supplier = models.ForeignKey(Supplier, on_delete=models.CASCADE)
price = models.IntegerField()
title = models.CharField(max_length=200)
img = models.CharField(max_length=200)
info= models.CharField(max_length=200)
link= models.CharField(max_length=200)
def __str__(self):
return str(self.supplier ) + " " + str(self.title)
然后你可以簡單地做Supplier.objects.all()
請注意,我真的不明白為什么有兩個不同的類別。 也許一個是子類別? 此外,您在談論產品,而不是類別。 我沒有在您的代碼中看到任何“產品”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.