【发布时间】:2020-07-22 06:22:29
【问题描述】:
我在使用 Django 和 React 时遇到了一个问题。我正在使用 Django Rest Framework 来序列化对象,但是我在 React 的前端遇到了一个错误,说每个对象都需要一个“键”属性。
我一直想知道是否有可能,看到有一个默认 ID,在 Rest Framework 中添加另一个与 Django 模型的主键字段具有相同值的字段?结合上下文,假设我有这个:
# models.py
class Todo(models.Model):
# the id field is auto-generated by django
title = models.CharField(_('title'), max_length=50)
desc = models.TextField(_('description'), max_length=500, blank=True)
created = models.DateTimeField(_('date created'), auto_now_add=True)
def __str__(self):
return self.title
如果我可以在下面做这样的事情,是否有可能?
# serializers.py
class TodoSerializer(serializers.ModelSerializer):
# assign the value of id to a new field named "key" <-- this action!!!
title = serializers.CharField(max_length=50, trim_whitespace=True)
desc = serializers.CharField(max_length=500, allow_blank=True)
created = serializers.DateTimeField()
class Meta:
model = Todo
fields = ['id', 'key', 'title', 'desc', 'level', 'created']
我想这样做的原因是 React 识别“key”属性而不是“id”,这导致我遇到了这个问题。同时,我不想丢弃“id”列,因为迁移数据会很繁重(里面已经有条目)。
提前致谢。
【问题讨论】:
标签: python django django-rest-framework key serialization