避免在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']