Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
避免在django admin中重复使用Foreigkey_Django_Django Admin - Fatal编程技术网

避免在django admin中重复使用Foreigkey

避免在django admin中重复使用Foreigkey,django,django-admin,Django,Django Admin,我有一个这样的模型: class UserAdress(models.Model): user = models.ForeignKey(MyUser) area = models.ForeignKey(Area) 在管理中: class UserAdressAdmin(models.Model): list_display = ['user','area'] 管理员列出用户的所有区域: user1 area1 user1 area

我有一个这样的模型:

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>


提前感谢

您可能需要重新定义模型和关系-可能需要使用其他关系类型。因此,您可以在管理模型中添加类似的内容(它不是admin.ModelAdmin吗?)

class UserAddressAdmin(admin.ModelAdmin):
def用户_区域(自身、obj):
areas=Area.objects.filter(pk\uu in=UserAddress.objects.filter(user=obj.user).values(“Area\uu id”))
返回“”%(
反向(“反向区域”),对象用户用户名)
user\u link.allow\u tags=True
列表显示=['user\u area','area']

一种解决方案是,如果您将
用户
设置为unique=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']