为什么我收到“(admin.E003) 'raw_id_fields[N]' 的值必须是 ForeignKey 或 ManyToManyField。” Django 应用程序出错?
Why I am getting an "(admin.E003) The value of 'raw_id_fields[N]' must be a ForeignKey or ManyToManyField." error in Django app?
我想进行架构迁移,只需将 1 个字段添加到 Model 和 ModelAdmin。
class MyModel(models.Model):
some_field = models.ForeignKey(SomeModel)
my_new_field = models.CharField(max_length=20, blank=True, null=True, choices=[(b'1', b'1'), (b'2', b'2')])
class MyModelAdmin(admin.ModelAdmin):
list_display = ['some_field', 'my_new_field']
raw_id_fields = ('some_field', 'my_new_field',)
我得到:(admin.E003) 'raw_id_fields[1]' 的值必须是 ForeignKey 或 ManyToManyField。
我该如何解决?
我用 Python 2.7、Django 1.8 和 PostgreSQL 编写了一个应用程序。我还使用 Docker 容器作为后端和 PostgreSQL。
来自docs:
raw_id_fields is a list of fields you would like to change into an Input widget for either a ForeignKey or ManyToManyField
my_new_field
是 CharField
,因此它的名称是 raw_id_fields
的无效元素。此 class 属性适用于 关系字段 ,您不希望从查询集中生成默认 select 下拉列表的开销,但希望使用通用输入输入 原始 ID。只需将您的字段添加到 fields
即可:
class MyModelAdmin(admin.ModelAdmin):
# ...
fields = ['some_field', 'my_new_field']
raw_id_fields = ['some_field']
我想进行架构迁移,只需将 1 个字段添加到 Model 和 ModelAdmin。
class MyModel(models.Model):
some_field = models.ForeignKey(SomeModel)
my_new_field = models.CharField(max_length=20, blank=True, null=True, choices=[(b'1', b'1'), (b'2', b'2')])
class MyModelAdmin(admin.ModelAdmin):
list_display = ['some_field', 'my_new_field']
raw_id_fields = ('some_field', 'my_new_field',)
我得到:(admin.E003) 'raw_id_fields[1]' 的值必须是 ForeignKey 或 ManyToManyField。
我该如何解决? 我用 Python 2.7、Django 1.8 和 PostgreSQL 编写了一个应用程序。我还使用 Docker 容器作为后端和 PostgreSQL。
来自docs:
raw_id_fields is a list of fields you would like to change into an Input widget for either a ForeignKey or ManyToManyField
my_new_field
是 CharField
,因此它的名称是 raw_id_fields
的无效元素。此 class 属性适用于 关系字段 ,您不希望从查询集中生成默认 select 下拉列表的开销,但希望使用通用输入输入 原始 ID。只需将您的字段添加到 fields
即可:
class MyModelAdmin(admin.ModelAdmin):
# ...
fields = ['some_field', 'my_new_field']
raw_id_fields = ['some_field']