为什么我得到“(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?

查看:80
本文介绍了为什么我得到“(admin.E003)'raw_id_fields [N]'的值必须为ForeignKey或ManyToManyField".Django应用程式中发生错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想进行模式迁移,只需在Model和ModelAdmin中添加1个字段即可.

I want to make a schema migration, just add 1 field to Model and to 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.

And I got : (admin.E003) The value of 'raw_id_fields[1]' must be a ForeignKey or ManyToManyField.

我该如何解决?我用Python 2.7,Django 1.8和PostgreSQL编写了一个应用程序.我还将Docker容器用于后端和PostgreSQL.

How can I fix that? I write an app with Python 2.7, Django 1.8 and PostgreSQL. I also use Docker containers for backend and PostgreSQL.

推荐答案

来自

raw_id_fields 是要更改为ForeignKey或ManyToManyField的Input小部件的字段列表

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 的无效元素.此类属性用于关系字段,在这里您不希望从查询集中生成默认选择下拉列表的开销,而是希望使用公共输入来输入原始ID .只需将您的字段添加到 fields 即可:

my_new_field is a CharField and its name therefore an invalid element of raw_id_fields. This class attribute is meant for relation fields where you don't want the overhead of generating the default select dropdown from a queryset but want to use a common input to enter raw ids. Just add your field to fields instead:

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

这篇关于为什么我得到“(admin.E003)'raw_id_fields [N]'的值必须为ForeignKey或ManyToManyField".Django应用程式中发生错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆