models.py:

class Car():
    producer = models.ForeignKey(Producer, blank=True, null=True,)
    color = models.CharField()
    car_model = models.CharField()
    doors = models.CharField()

serializers.py:

class CarSerializer(ModelSerializer):

    class Meta:
        model = Car
        fields = Car._meta.get_all_field_names()

所以,这里我想使用所有字段.但我有一个错误:

Field name 100 is not valid for model 101.

如何解决这个问题呢?

谢谢!

推荐答案

根据这Django REST Framework's Documentation on ModelSerializers条:

默认情况下,类上的所有模型字段都将映射到相应的序列化程序字段.

这与Django's ModelForms不同,后者要求您使用specify the special attribute '__all__'才能使用所有模型字段.因此,所有需要做的就是声明模型.

class CarSerializer(ModelSerializer):
    class Meta:
        model = Car

更新(适用于大于等于3.5的版本)

上述行为在3.3版中已弃用,并从3.5版开始禁用.

使用特殊属性'__all__'来使用Django睡觉框架中的所有字段,与Django表单相同:

未能设置字段或排除会在3.3版中引发挂起的弃用警告,并在3.4版中引发弃用警告.它的使用现在是强制性的.

所以现在肯定是:

class CarSerializer(ModelSerializer):
    class Meta:
        model = Car
        fields = '__all__'

Django相关问答推荐

DRF中没有参数的视图的警告-壮观

如何显示;Django认证系统;在模板中?

Django Admin:在一个部分中同时显示多个应用程序?

DjangoAdmin与外部数据库的模型无法保存或过滤

身份验证有效,但登录无效.一直卡在pending

Django 注释(),计数()

基于令牌的身份验证如何工作?

Pymongo:搜索文档时忽略空输入值

如何在 gunicorn conf 文件中指定 uvicorn 工作人员

相同的字符串不同的翻译

在 Django CharFields 中自动截断 max_length 字段

Django删除查询集的最后五个以外的所有内容

django - 如何在验证之前处理/清理字段

Django中视图的多个decorator :执行顺序

django类型对象Http404没有属性get

Django 删除未使用的媒体文件

Python Django 模板和测试变量是否为空或空字符串

import_module 的 Django 1.9 ImportError

如何在 Django/Python 中减go 两个日期?

如何检测 Heroku 的环境?