2012-07-03 36 views
0

我有这样一个模型:避免在Django管理Foreigkey重复

class UserAdress(models.Model): 
    user = models.ForeignKey(MyUser) 
    area = models.ForeignKey(Area) 

在管理员:

class UserAdressAdmin(models.Model): 
    list_display = ['user','area'] 

管理员列出所有地区的用户:

user1   area1 
user1   area2 
user2   area1 
user2   area2 

有任何方式显示这样?

<a href='link to all user1 areas'>user 1</a> 
<a href='link to all user2 areas'>user 2</a> 

在此先感谢

+1

一种解决方案可能是,改变'area'关系到'manytomany'。然后你在列表中有独特的用户,他们的区域有详细的信息。对? – Ahsan

+0

@Ahsan,非常感谢您的帮助。但我没有授权来模拟这个模型。 – TheNone

回答

1

你可能会需要重新定义的模型和关系 - 也许使用一些其他的关系类型。所以,你可以像在你的管理模型添加的东西(是不是admin.ModelAdmin?):如果你把``user`独特= TRUE`

class UserAddressAdmin(admin.ModelAdmin): 

    def user_areas(self, obj): 
     areas = Area.objects.filter(pk__in=UserAddress.objects.filter(user=obj.user).values("area__id")) 
     return "<a href='%s'>%s</a>" % (
      reverse("reverse_to_areas"), obj.user.username) 
    user_link.allow_tags = True 

    list_display = ['user_areas','area']