簡體   English   中英

濾波型號Django

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM