2016-05-14 39 views
1

我試圖訪問相關模型字段(第二層次)的onetomany。這是我的情景:django admin:如何從同一個FK的2個模型中獲取所有值

RealState(模型)

  • 所有者(FK)

CheckingAccount(模型)

  • 平衡
  • 所有者(FK)

Owner(模型)

在我RealState管理員我要查看用戶CheckingAccountsselectbox ......

任何想法?

+0

嗨,歡迎來到SO!請閱讀[this](http://stackoverflow.com/help/how-to-ask)文章,瞭解如何提出更好的問題,這將有助於人們給你更好的答案。特別是,展示你已經嘗試過的東西(即代碼)。 –

+0

謝謝史蒂夫。 ;) –

回答

1

1中的CheckingAccount模型確保ü有一個ADMIN_LINK FUNC的作品

財產以後這樣的:

def get_admin_absolute_url(self): 
    if self.pk: 
     return resolve_url('admin:checkAccounts_change', self.pk) 

def admin_link(self): 
    if not self.pk: 
     return '' 
    return ('<a href={}>{}</a>').format(self.get_admin_absolute_url(), 
             self.name) 

2中的CheckingAccount添加此FUNC:

def get_all_onwers(self): 
     return Owner.objects.all() 

3在RealState模型添加此功能:

def get_all_onwers(self): 
     return Owner.objects.all() 

4所有者模型添加此FUNC:

def get_all_CheckingAccount(self): 
     return self.CheckingAccount_set.all() 

5在RealState管理:

def get_all_owners_CheckingAccount(self, obj): 
     all_checks_accounts = [] 
     for owner in obj.get_all_owners(): 
      all_checks_accounts.append(','.join(checkAccount.admin_link() for chechAccount in owner.get_all_CheckingAccount())) 
     return all_checks_accounts 

    get_all_owners_CheckingAccount.allow_tags = True 

就是這樣,也許你會需要過濾掉一些結果顯示兩次或更多,並編輯表格提示覆選框

相關問題