在django admin中使用外键访问其他模型字段

在django admin中使用外键访问其他模型字段,django,foreign-keys,django-admin,Django,Foreign Keys,Django Admin,我在django模型中有一个contact us类,它使用“user_id”外键,在admin.py文件中,我想使用带有user_id键的userprofile数据,例如“name”字段,在userprofile模型中,“user_id”也是外键,怎么做 在models.py中: class Ticket(models.Model): user_id = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True,

我在django模型中有一个contact us类,它使用“user_id”外键,在admin.py文件中,我想使用带有user_id键的userprofile数据,例如“name”字段,在userprofile模型中,“user_id”也是外键,怎么做

在models.py中:

class Ticket(models.Model):
    user_id = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, editable=False, verbose_name="user")
    replier_id = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, related_name="replier")
    guest_name = models.CharField(max_length=50, blank=True, null=True, editable=False)
    guest_email = models.CharField(max_length=255, blank=True, null=True, editable=False)
    user_phone = models.CharField(max_length=13, blank=True, null=True, editable=False)
    subject = models.CharField(max_length=255, blank=True, null=True, editable=False)
    message = models.TextField(editable=False)
    reply = models.TextField(blank=True, null=True)
    date = models.DateTimeField(auto_now=True, editable=False)
    reply_date = models.DateTimeField(blank=True, null=True)
    user_ip = models.GenericIPAddressField(editable=False)
在admin.py中

class ContactUsAdmin(admin.ModelAdmin):
    actions = None
    fields = ('user_name', 'user_email', 'subject', 'date', 'message', 'user_phone', 'reply')
    list_display = ('user_name', 'user_email', 'subject', 'date', 'is_replied')
    list_filter = ('date',)
    search_fields = ['user_id__first_name', 'user_id__email', 'guest_name', 'guest_email', 'subject', 'message']
    readonly_fields = ('user_name', 'user_email', 'subject', 'date', 'message', 'user_phone', 'reply_date')
我想在admin.py字段中显示UserProfile类的名称

根据您查询的问题标题。我正在鼓励如何在django做到这一点:
class相册(models.Model):
AlbumName=models.CharField(最大长度=250)
AlbumSinger=models.CharField(最大长度=250)
AlbumGene=models.CharField(最大长度=250)
AlbumImage=models.FileField(null=True)
SingerImage=models.FileField(null=True)
class音乐(models.Model):
相册=型号。外键(相册,相关的\u name='music')
MusicName=models.CharField(最大长度=250)
MusicLength=models.CharField(最大长度=250)
MusicFile=models.FileField(null=True)
在音乐中使用外键专辑。您可以根据他们的专辑访问所有音乐。要在管理中访问它们,只需导入类名并执行以下操作:

管理站点注册(相册)
管理站点注册(音乐)

我希望这能消除你的困惑

最后我解决了这个问题,在userprofile模型中,user\u id具有与“profile”相关的\u名称,在每个位置,使用user\u id外键,我们拥有每个模型中的所有相关字段,其中user\u id是外键 您可以使用dir(“youuser\u id instance”)查看这些。
因此,使用user_id.profile.name,我可以得到用户的配置文件名,而无需任何导入或更改

请发布您的代码。@Selcuk done…您能澄清一下您的目标吗,您的问题确实不清楚如果歌手详细信息保存在另一个模型或表格中,如何从musics管理文件中获取带有专辑外键的歌手字段?@farzaneh在歌手模型中使用musics外键。这将获得有关专辑、音乐或歌手的所有信息。或者你们可以像我在音乐中做的那个样,在歌手模型中专辑外键。感谢在您的示例中,如果您有一个singer表,它有一个user\u id外键,如果您有singer的地址,它在userprofile表中,带有“user\u id.profile.address”,您可以从userprofile表中获得它,它中的user\u id具有与“profile”相关的名称!嗯,若你们用歌手模型中的唱片集作为外键,那个就容易多了。这会让你的专辑,音乐和歌手一次!请提供一个简单的工作示例。否则你的答案就毫无用处了。另外,请在问题和答案中检查你的ortographie。