我正在使用一个实现Rest框架的Django项目。
我有这个模型
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
关于'所有者'ForeignKey的注意事项。
在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
中返回什么,都会发生同样的错误。
我的问题是如何调试,理想情况下,修复此错误。 谢谢。
答案 0 :(得分:1)
由于MyRelatedField和UserSerializer位于同一模块中,因此您需要将portfolio = MyRelatedField(many=True)
替换为property
。