2013-04-16 54 views
0

我有一個叫做銀行的模型,該模型的Credit類與用戶關聯。 然後我有一個叫做程序的模型,它有一個NewProgram類也和一個用戶相關聯。Django列表排序

現在,我想列出所有的NewProgram對象由用戶順序升序到我的views.py。 而我不知道如何使用.order_by方法去做。

我希望有人能給我一些提示。

繼承人我的代碼:

APPNAME:銀行

models.py

class Credit(models.Model): 
    credit_balance = models.DecimalField(max_digits=6, decimal_places=2) 
    depositor = models.ForeignKey(User, unique=True) 
    last_updated = models.DateTimeField(auto_now=True) 

    def __unicode__(self): 
     return u'%s' % self.depositor.username 

APPNAME:程序

class NewProgram(models.Model): 
    program_creator = models.ForeignKey(User, related_name='program_creator') 
    joining_credit_value_offer = models.DecimalField(max_digits=6, decimal_places=2) 
    site = models.ForeignKey('ProgramSite') 
    uid = models.CharField(max_length=50) 
    title = models.CharField(max_length=30) 
    desc = models.CharField(max_length=150) 
    content = models.TextField(blank=False) 
    is_published = models.BooleanField(default=True) 
    referrals = models.ManyToManyField(User, through='ReferredUser') 
    creation_date = models.DateTimeField(auto_now_add=True) 

繼承人什麼,我試圖完成

list = NewProgram.objects.all().order_by(<Users Credit><ASC>) 

非常感謝,任何幫助將不勝感激。

回答

2

您可以嘗試使用此

list = NewProgram.objects.all().order_by('-program_creator__credit__credic_balance') 

的Django遵循通過__的關係。

+0

將它的工作即使信用模型是沒有直接關係的NewProgram?唯一與NewProgram和Credit相關的是用戶,NewProgram以program_creator爲用戶,Credit以program_creator爲用戶 –

+0

@DjangoBot,哦,我錯過了。但是可以使用'-program_creator__credit __...'來解決,檢查更新後的查詢。 – Rohan

+0

你的男人Rohan,Nice非常感謝你幫助像我這樣的新手。 :) –

0

你好,你可以使用這個:

#Note, no need to use .all() 
list = NewProgram.objects.filter(credit_set__depositor="some_user") 
+0

沒有工作,無法解析關鍵字'credit_set'到字段。選擇是:content,creation_date,desc,id,is_published,joining_credit_value_offer,program_creator,推薦人,提名者,網站,標題,uid –

+0

謝謝。 –