首页 > 解决方案 > 通过用户字段添加到序列化程序

问题描述

我有以下型号

class User(AbstractUser):
  email = models.EmailField(_('email address'), unique=True)
  display_name = models.Charfield()

class Team(models.Model):
  display_name = models.Charfield()
  users = models.ManyToManyField(User, through='TeamUser')

class TeamUser(models.Model):
  team = models.ForeignKey(Team, on_delete=models.CASCADE)
  user = models.ForeignKey(User, on_delete=models.CASCADE)
  role = models.IntegerField(_('role'), choices=[(g.id, g.name) for g in TeamRoles.all()], default=0)
  color = models.CharField(_('color'), max_length=10)
  class Meta:
    unique_together = ('team_id', 'user_id',)

我想为序列化程序添加角色和颜色(使用 request.user) 我怎样才能为此制作 TeamSerializer?

标签: djangodjango-modelsdjango-rest-framework

解决方案


为了能够为您收到的传入 HTTP 请求添加新内容。你需要在请求中注入它。例子。

self.request.GET.set('color', 'green') // this is in case of HTTP/GET
self.request.POST.set('color', 'green') // this is in case of HTTP/POST

推荐阅读