小编jor*_*lle的帖子

Django Rest Framework - 将序列化程序字段映射到数据库列名

我正在处理Django Rest Framework项目,我的视图的泛型响应不是应用程序客户端所期望的.

应用程序客户端期望相关模型的字段显示为它们在数据库中.给出的示例:model City具有Country模型的外键,由country_id列表示.

是否有任何选项可以将序列化程序默认字段"映射"为自定义字段?我查看了Django Rest Framework文档,但我只找到了"serializer_field_mapping",但我不知道它是否符合我的要求,也不知道如何使用它.

不知怎的,我得到了一个接近的方法,但只是在获取数据的情况下 - 创建/更新抛出一些我没有得到如何管理的错误.:(

Bellow我附上了models.py文件,加上实际输出和所需的输出.此外,如果可能,我想检索与国家/地区相关的数据(如果存在)与数据库列field_id名称相结合.

提前致谢,

models.py

from django.db import models
from django.contrib.postgres.fields import ArrayField


class Country(models.Model):

    name = models.CharField(max_length=150, unique=True, blank=False)

    class Meta:
        db_table = 'countries'


class Region(models.Model):

    name = models.CharField(max_length=150, unique=True, blank=False)
    code = models.CharField(max_length=150, blank=True)

    class Meta:
        db_table = 'regions'


class City(models.Model):

    country = models.ForeignKey(Country)
    region = models.ForeignKey(Region, null=True, blank=True, default=None)
    name = models.CharField(max_length=150, unique=True, blank=False)
    postal_codes = ArrayField(models.CharField(max_length=12, blank=True), null=True, blank=True, default=None)

    def __str__(self):
        if not self.region: …
Run Code Online (Sandbox Code Playgroud)

django django-models django-rest-framework

8
推荐指数
2
解决办法
5973
查看次数