2012-07-03 35 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']