django - 用于成员模型的 Django 休息框架序列化程序?
问题描述
我如何将序列化程序用于这样的事情
class Language(BaseModel):
name = models.CharField(null=False, blank=False, unique=True, max_length=150)
class Helper(BaseModel):
languages = models.ManyToManyField('Language', blank=True, through="HelperLanguage")
class HelperLanguage(BaseModel):
helper = models.ForeignKey('Helper', on_delete=models.CASCADE)
language = models.ForeignKey('Language', on_delete=models.CASCADE)
read = models.BooleanField()
write = models.BooleanField()
speak = models.BooleanField(default=True)
class LanguageSerializer(ModelSerializer):
class Meta:
model = Language
fields = ["id", "name"]
class HelperLanguageSerializer(ModelSerializer):
language = LanguageSerializer(read_only=True)
class Meta:
model = HelperLanguage
fields = ["id", "language", "read", "write", "speak"]
class HelperPublicSerializer(ModelSerializer):
languages = HelperLanguageSerializer(read_only=True, many=True)
class Meta:
model = Helper
fields = ['id', 'languages']
使用 HelperPublicSerialiser 进行列表视图时出现错误
read
尝试获取序列化程序上的字段值时出现 AttributeError HelperLanguageSerializer
。序列化器字段可能命名不正确,并且与Language
实例上的任何属性或键都不匹配。我确实理解这个问题,但找不到任何可能没有正确使用会员模式的解决方案。
解决方案
推荐阅读
- c# - 外键 ID 转换(C# 到 SQL Server)
- angular - 分页器,排序和过滤器不适用于角度材料项目
- mongodb - 获取计数和文档详细信息
- python - 如何在 Pytorch1.1 & DistributedDataParallel() 中计算米?
- r - 如何在 R 中创建密度图矩阵
- angularjs - 如何使用 ng-repeat 功能显示 2 个实心量规?
- r - 是否有 R 函数对列变量进行排序?
- rest - REST 微服务 api 读取后如何将属性文件保存在某个本地内存中
- android - 如何从地图轨迹创建视频
- json - laravel 5.7 中的嵌套 json 响应