Django REST Framework 3.0-NOT NULL约束失败:

米拉莱姆·塞比奇(Miralem Cebic)

我有这个错误

IntegrityError at /foobars/
NOT NULL constraint failed: restServer_foobar.geo_location_id

当我尝试通过http://127.0.0.1:8000/foobars/(Website / APIView)向数据库添加新的Foobar对象时

我的序列化器类如下所示:

class GeopointSerializer(serializers.ModelSerializer):

    class Meta:
        model = Geopoint
        fields = ('id', 'latitude', 'longitude')

class FooBarSerializer(serializers.ModelSerializer):

    geo_location = GeopointSerializer(required=True)

    class Meta:
        model = FooBar
        fields = ('id', 'geo_location', 'geo_fence', 'registered', 'last_login')

    def create(self, validated_data):
        geo_location_data = validated_data.pop('geo_location')
        foobar = FooBar.objects.create(**validated_data)
        Geopoint.objects.create(FooBar=foobar, **geo_location_data)
        return foobar

数据库已删除。

凯文·布朗

ForeignKeyFooBar模型上,而不是Geopoint模型上。这确定了创建对象所需的顺序,因为数据库中的字段必须正确填写。

具有外键的对象应该始终在它们指向的对象之后创建,因为您以后不能填写它-创建对象时它必须存在。在您的情况下,这意味着您必须切换create语句的位置,因此Geopoint会在FooBar对象之前创建

def create(self, validated_data):
    geo_location_data = validated_data.pop('geo_location')
    geo_location = Geopoint.objects.create(**geo_location_data)
    foobar = FooBar.objects.create(geo_location=geo_location, **validated_data)
    return foobar

注意构造每个对象时的更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django Rest Framework 3必需的字段行为

来自分类Dev

升级到django-rest-framework 3后的UnicodeDecodeError

来自分类Dev

Django Rest Framework 3:无需请求即可上传文件

来自分类Dev

Django Rest Framework 3:无需请求即可上传文件

来自分类Dev

Django Rest Framework and JSONField

来自分类Dev

Django Rest Framework API

来自分类Dev

Django Rest Framework的ModuleNotFoundError

来自分类Dev

Django REST Framework-Django在`pip3 list'中大写

来自分类Dev

Django Rest Framework URL模式

来自分类Dev

Django Rest Framework API权限

来自分类Dev

Django Rest Framework权限冲突

来自分类常见问题

Django Rest Framework部分更新

来自分类Dev

Django Rest Framework:最佳做法?

来自分类Dev

Django Rest Framework APIView参数

来自分类Dev

Django REST Framework文件上传

来自分类Dev

Django Rest Framework版本控制

来自分类Dev

Django Rest Framework:管理关系

来自分类Dev

Django Rest Framework反向URL

来自分类Dev

Django REST framework request data

来自分类Dev

Django REST Framework缓存错误

来自分类Dev

Django Rest Framework ImageField可选

来自分类Dev

Django Rest Framework嵌套关系

来自分类Dev

Django Rest Framework CharFilter JSON

来自分类Dev

来自Django Rest Framework的JSON

来自分类Dev

Django rest_framework关系

来自分类Dev

Django Rest Framework版本控制

来自分类Dev

Django Rest Framework:最佳做法?

来自分类Dev

Django Rest Framework权限冲突

来自分类Dev

Django Rest Framework include_docs_urls 添加 _0 到 action

来自分类Dev

如何在Django Rest Framework 3中覆盖ModelViewSet的get_queryset?