【发布时间】:2020-12-07 04:05:23
【问题描述】:
我希望在模块序列化程序中显示多对多字段而不是 id,这些是我的序列化程序
class TrainerSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ['id', ]
class ModuleSerializer(serializers.ModelSerializer):
trainer = serializers.CharField(source='trainer.username')
class Meta:
model = Module
fields = ['id', 'title', 'duration', 'trainer',
'publish_choice']
class Trainer(models.Model):
user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
def __str__(self):
return str(self.user)
class Meta:
ordering = ['pk']
class Module(models.Model):
title = models.CharField(max_length=80, unique=True)
duration = models.IntegerField(verbose_name='Duration in Days/ Weeks', blank=True, null=True)
trainer = models.ManyToManyField(Trainer, blank=True)
detail = models.TextField(verbose_name='Program Details', blank=True, null=True)
notify = models.BooleanField(default=False)
publish_choice = models.CharField(verbose_name='Publish/ Draft',
max_length=80, choices=PUBLISH_CHOICES, default='publish')
这是错误信息
尝试在序列化程序 ModuleSerializer 上获取字段 trainer 的值时出现 AttributeError。
序列化程序字段可能命名不正确,并且与 Module 实例上的任何属性或键都不匹配。
原始异常文本是:“ManyRelatedManager”对象没有属性“用户名”。
【问题讨论】:
标签: django django-rest-framework