小编toe*_*oel的帖子

如何使用 django-rest-framework 保存外键

我是 Django 的新手,我正在尝试将 Unit 和 current_user 外键保存在基于 pk 的数据库中,但是每次我尝试这样做但遇到两种类型的错误serializers.is_valid()都会引发异常错误或序列化程序返回"Invalid data. Expected a dictionary, but got Unit."

我已经尝试了一种非常非常丑陋的方法来绕过序列化程序,但我得到 ee8452a4-2a82-4804-a010-cf2f5a41e006 must be an instance of SavedUnit.unit.I 也尝试过直接使用保存外键 SavedUnit.objects.create()而没有运气

模型.py

class SavedUnit(models.Model):
    """
    Saving units for later models
    relationship with units and users
    """
    id = models.UUIDField(primary_key=True, default=hex_uuid, editable=False)
    unit = models.ForeignKey(Unit, on_delete=models.CASCADE)
    user = models.ForeignKey('accounts.User', on_delete=models.CASCADE, related_name='user')
    published_at = models.DateTimeField(auto_now_add=True)
Run Code Online (Sandbox Code Playgroud)

序列化程序.py

class SavedSerializer(serializers.ModelSerializer):
    unit = UnitSerializer()
    class Meta:
        model = SavedUnit
        fields = [
            'id',
            'unit'
        ]
Run Code Online (Sandbox Code Playgroud)

视图.py …

django python-3.x django-rest-framework django-2.1

0
推荐指数
1
解决办法
3960
查看次数