2016-05-14 68 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 

就是这样,也许你会需要过滤掉一些结果显示两次或更多,并编辑表格提示复选框

相关问题