为什么我收到“(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_fieldCharField,因此它的名称是 raw_id_fields 的无效元素。此 class 属性适用于 关系字段 ,您不希望从查询集中生成默认 select 下拉列表的开销,但希望使用通用输入输入 原始 ID。只需将您的字段添加到 fields 即可:

class MyModelAdmin(admin.ModelAdmin):
    # ...
    fields = ['some_field', 'my_new_field']
    raw_id_fields = ['some_field']