Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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中的原始id字段和许多_Django_Django Admin_Django Orm - Fatal编程技术网

Django admin中的原始id字段和许多

Django admin中的原始id字段和许多,django,django-admin,django-orm,Django,Django Admin,Django Orm,我希望在管理中的多个关系上使用原始\u id\u字段,并希望每个相关对象显示在其自己的行上(而不是在单个字段中使用逗号分隔的列表,这是默认行为)。下面是在野外发现的例子,我似乎应该能够做到这一点: # models.py class Profile(models.Model): ... follows = models.ManyToManyField(User,related_name='followees') # admin.py class FollowersInline(

我希望在管理中的多个关系上使用原始\u id\u字段,并希望每个相关对象显示在其自己的行上(而不是在单个字段中使用逗号分隔的列表,这是默认行为)。下面是在野外发现的例子,我似乎应该能够做到这一点:

# models.py
class Profile(models.Model):
    ...
    follows = models.ManyToManyField(User,related_name='followees')

# admin.py
class FollowersInline(admin.TabularInline):
    model = Profile
    raw_id_fields = ('follows',)
    extra = 1

class ProfileAdmin(admin.ModelAdmin):
    search_fields = ('user__first_name','user__last_name','user__username',)
    inlines = (FollowersInline,)

admin.site.register(Profile,ProfileAdmin)
但这会产生错误:

<class 'bucket.models.Profile'> has no ForeignKey to <class 'bucket.models.Profile'>
没有要删除的外键

我不清楚我做错了什么。谢谢您的建议。

看起来您为您的
InlineAdmin设置了错误的模型
因为您定义的追随者模型是
User
,而不是
Profile

看看这些,我想你应该试试:

class FollowersInline(admin.TabularInline):
    model = Profile.follows.through


看起来您为您的
InlineAdmin
因为您定义的追随者模型是
User
,而不是
Profile

看看这些,我想你应该试试:

class FollowersInline(admin.TabularInline):
    model = Profile.follows.through


谢谢Arie,但这给了我:“FollowersInline.raw_id_fields”指的是模型“Profile_follows”中缺少的字段“follows”。以下内容作为概要文件中的一个字段存在。嗯,可能我还没有完全理解您要做的事情:您正在尝试关联
关注者
概要文件
,对吗?据我所知,您应该能够在
InlineAdmin
上ommit
raw\u id\u fields=('follows',)
。然后,您可以使用内联表单将
关注者
用户
)关联到
配置文件
。关注者不是单独的模型-“Followers”是配置文件模型上m2m字段的名称。我可以从ProfileAdmin中省略follows,但是当我向ProfileAdmin添加inlines=(FollowersInline,)时,我会得到上面描述的两个错误之一,这取决于我是使用“model=Profile”还是“model=Profile.follows.through”。谢谢。我指的是追随者a.k.a.用户(因为这是
遵循的
模型)。根据我的理解,匹配raw_id字段并使用Profile.follows.through应该可以工作。但事实并非如此,我只能希望有人能想出更好的主意。祝你好运谢谢Arie,但这给了我:“FollowersInline.raw_id_fields”指的是模型“Profile_follows”中缺少的字段“follows”。以下内容作为概要文件中的一个字段存在。嗯,可能我还没有完全理解您要做的事情:您正在尝试关联
关注者
概要文件
,对吗?据我所知,您应该能够在
InlineAdmin
上ommit
raw\u id\u fields=('follows',)
。然后,您可以使用内联表单将
关注者
用户
)关联到
配置文件
。关注者不是单独的模型-“Followers”是配置文件模型上m2m字段的名称。我可以从ProfileAdmin中省略follows,但是当我向ProfileAdmin添加inlines=(FollowersInline,)时,我会得到上面描述的两个错误之一,这取决于我是使用“model=Profile”还是“model=Profile.follows.through”。谢谢。我指的是追随者a.k.a.用户(因为这是
遵循的
模型)。根据我的理解,匹配raw_id字段并使用Profile.follows.through应该可以工作。但事实并非如此,我只能希望有人能想出更好的主意。祝你好运