0
我有一個模型定義爲最新的項目:Django的過濾器由不同領域的對象,並得到
from django.db import models
class BookManager(models.Manager):
def latest_book(self):
return super(BookManager, self).get_queryset().filter(something)
class Book(models.Model):
name = models.CharField(max_length=200)
author = models.CharField(max_length=200)
version = models.IntegerField(default=0)
objects = BookManager()
def __unicode__(self):
return "%s : %s : %s" % (self.name, self.author, self.version)
具有相同的名稱和作者一本書被認爲是同一本書,卻可以有不同的版本。我想篩選出最新(通過比較版本)(名稱+作者)的書,例如:
有這樣的書:
Good Time : Andy : 1
Good Time : Andy : 2
Good Time : Andy : 3
My Django Book : Jim : 1
My Django Book : Jim : 2
My Django Book : Jim : 3
Python Tutorial : Tom : 1
Python Tutorial : Tom : 2
Python Tutorial : Tom : 3
Python Tutorial : Tom : 4
Python CookBook : Tom : 1
Python CookBook : Tom : 2
我想對其進行過濾:
from books.models import Book
Book.objects.latest_book()
並獲得預期結果爲:
<Book: Good Time : Andy : 3>
<Book: My Django Book : Jim : 3>
<Book: Python Tutorial : Tom : 4>
<Book: Python CookBook : Tom : 2>
我怎麼能寫(在上面的代碼過濾器(東西))過濾器?
任何方式來獲得模型實例,而不是價值?雖然我可以用這些值再次查詢,但如果我有大量的記錄,則不好。如果我想在get_queryset中做到這一點,這會有點困難。 – vts
刪除'values'調用,您將擁有乾淨的模型。 –
嗨Gianluca,你是什麼意思'刪除值調用'?你能幫我看看確切的路線嗎? – vts