Поля ForeignKey не обновляются в одном POST-запросе

У меня есть модель в 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)

Теперь, когда я делаю POST запрос в django rest framework, он принимает все поля данных, кроме streamID и userID (которые являются foreignkeys), это произошло после того, как я изменил 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__"

Для обновления foreignkey необходимо отправить первичный ключ userId/streamId вместо строки. Надеюсь, это поможет вам решить вашу проблему.

Вернуться на верх