django - 通过用户字段添加到序列化程序
问题描述
我有以下型号
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?
解决方案
为了能够为您收到的传入 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
推荐阅读
- java - Ubuntu 18.04 javafx.utils 不存在
- python - 在 matplotlib 中为任何艺术家制作动画的一般方法?
- python - 是否有等效的“sum()”内置函数使用增强赋值?
- java - 出乎意料的 VarHandle 性能(比替代方案慢 4 倍)
- javascript - 表单上的输入值不显示 HTML WordPress
- android - 隐藏/显示片段中的导航元素
- javascript - 如何识别移动设备中的地址栏?
- c - 在汇编中使用 fgets 时出现分段错误错误?
- python - COCO python API已安装但无法导入
- python - TensorFlow 模型的成本始终为 0