1
工作我的模型目前是這樣的:Django的 - 與查詢集
class Dealer(models.Model):
name = models.CharField(unique=True, max_length=255, default='')
url = models.URLField()
def __str__(self):
return self.name
class Category(models.Model):
name = models.CharField(unique=True, max_length=255, default='')
def __str__(self):
return self.name
class Car(models.Model):
name = models.CharField(unique=False, max_length=255,default='')
category = models.ForeignKey(Category, on_delete=models.CASCADE)
def __str__(self):
return self.name
class Price(models.Model):
car = models.ForeignKey(Car, default='')
dealer = models.ForeignKey(Dealer, default='')
price = models.DecimalField(max_digits=9, decimal_places=2)
url = models.URLField(max_length=255)
def __str__(self):
return str(self.price)
我希望能夠做的是回答以下問題(的東西,最終都將成爲我的觀點的情況下)什麼: 展我列出了不同經銷商提供的特定類別的汽車及其價格。我使用的測試查詢是這樣的:
carprice = Price.objects.filter(car__category='1').values('car__name','price','dealer__name').order_by('car__name')
生成的查詢集看起來是這樣的:
<QuerySet [{'car__name': 'Audi Model A', 'price': Decimal('32000.00'), 'dealer__name': 'Dealer A'}, {'car__name': 'Audi Model A', 'price': Decimal('35000.00'), 'dealer__name': 'Dealer B'}, {'car__name': 'Audi Model A', 'price': Decimal('35000.00'), 'dealer__name': 'Dealer C'}, '...(remaining elements truncated)...']>
問題1:可以查詢修改,以便在查詢集不重複car__name每次,而是由car__name組合價格和經銷商?如果有人能指點我一個關於QuerySets的好教程/文檔,我會非常感激。我試過看Django的文檔,並不能真正找到這個問題的答案。
- Audi Model A
- Dealer A 32000.00
- Dealer B 35000.00
- Dealer C 35000.00
問2:使用當前的查詢,如何分組可以在視圖功能完成實現上述的樣子?
誰能幫助我在這裏? –