我是django休息框架的新手 我的模型的相关部分看起来像这样(简化):
class Action(models.Model):
type = models.CharField()
bonus = models.IntegerField()
class User(models.Model):
auth = models.OneToOneField(AuthUser)
display_name = models.CharField()
class Comment(models.Model):
contributor = models.ForeignKey(User)
content = models.TextField()
class Activity(models.Model):
user = models.ForeignKey(User)
target_comment = models.ForeignKey(Comment)
action = models.ForeignKey(Action)
我希望我的一个API端点能够返回如下内容:
{
...
"comments":
[
{
"id": 1,
...
"curr_user_upvoted": true
},
...
]
}
我知道我需要执行的查询才能获得" curr_user_upvoted"的值,但我不知道如何将其作为API表示的一部分。
我知道如何创建自定义关系字段,但它并没有帮助,因为" curr_user_upvoted"既不是一个领域,也不是一个关系
有什么想法吗?
答案 0 :(得分:0)
您可以创建SerializerMethodField来执行此操作。这只是序列化程序类上的一个返回所需值的方法。
方法名称默认为get_curr_user_upvoted
- 换句话说,它应该是get_
后跟字段名称,但如果您愿意,可以将明确的method_name
参数传递给字段。