【发布时间】:2022-08-24 07:29:34
【问题描述】:
我在 Django 中有一个模型,它具有对其他模型的外键引用,
class Comments(models.Model):
commentId = models.CharField(max_length=100, primary_key=True)
chatType = models.CharField(max_length=100)
commentContents = get_nullable_text_field()
timeStamp = models.CharField(max_length=100)
userName=models.CharField(max_length=100,default=\"\")
profilepicurl=models.CharField(max_length=100,default=\"\")
userId=models.ForeignKey(Userprofile,default=None, blank=True, null=True,on_delete=models.SET_NULL)
streamId=models.ForeignKey(Streams,default=None, blank=True, null=True,on_delete=models.CASCADE)
history = AuditlogHistoryField(pk_indexable=False)
现在,当我在 django rest 框架中发出 POST 请求时,它会获取除 streamID 和 userID(它们是外键)之外的所有数据字段,这发生在我将 streamID 和 userID 从 models.charfield 更改为 models.ForeignKey 之后。当我发送具有相同正文的第二个 POST 请求时,它可以工作。
这是序列化程序类
class CommentsSerializer(GlanceSerializer):
commentId = serializers.CharField(required=True)
@transaction.atomic()
def update_or_create(self, validated_data, create_only):
id_field_value = {\'commentId\': validated_data[\'commentId\']}
data, _ = do_update_or_create(validated_data, create_only,
Comments, id_field_value)
return data
class Meta:
model = Comments
fields = \"__all__\"
标签: django serialization django-rest-framework foreign-keys