我正在使用一个Django项目来实现Rest框架
我有这个型号
class Portfolio(models.Model):
ticker = models.CharField(max_length=10, default='???')
name = models.CharField(max_length=25)
amount = models.FloatField()
owner = models.ForeignKey('auth.User', related_name='portfolio', on_delete=models.CASCADE)
def __str__(self):
return self.name
“所有者”外键上的注释
在我的serializers.py
中,我有这个
class MyRelatedField(serializers.RelatedField):
def to_representation(self, obj):
return 'Test'
class UserSerializer(serializers.ModelSerializer):
portfolio = serializers.MyRelatedField(many=True)
class Meta:
model = User
fields = ('url', 'id', 'username', 'portfolio')
正如我在docs上读到的那样,如果我想要一个自定义表示,我应该重写RelatedField
(我已经重写了)。然而,当我试图运行时,我得到了这个错误
AttributeError: module 'rest_framework.serializers' has no attribute 'MyRelatedField'
无论我在MyRelatedField
中返回什么,都会发生相同的错误
我的问题是如何调试并理想地修复此错误。 多谢各位
由于MyRelatedField和UserSerializer位于同一个模块中,您需要将
portfolio = serializers.MyRelatedField(many=True)
替换为portfolio = MyRelatedField(many=True)
相关问题 更多 >
编程相关推荐