python - (Django) 无法更新/添加到 manytomany 字段
问题描述
所以我目前在一个项目中,我希望团队负责人更新他们的小组并添加/删除成员,但它不起作用,我不知道为什么我尝试通过添加/删除方式来做,正如你在下面的代码中看到的那样。
我怎样才能解决这个问题?
楷模
class TeamMembership(models.Model):
user = models.ForeignKey(User)
team = models.ForeignKey(Team)
ingroup = models.BooleanField(default=False)
leader = models.BooleanField(default=False)
groupleader = models.BooleanField(default=False)
class TeamGroup(models.Model):
name = models.CharField(max_length=50)
team = models.ForeignKey(Team)
ingroup = models.ManyToManyField(TeamMembership, blank=True)
目前的代码是这样的
@login_required
def teamsettings_members_updategroup(request, team_pk, group_pk):
requested_team = get_object_or_404(Team, pk=team_pk)
for member in requested_team.teammembership_set.all().order_by('-leader'):
if member.user.pk == request.user.pk and member.leader:
group = TeamGroup.objects.get(pk=group_pk)
if request.method == 'POST':
name = request.POST['name']
users = request.POST.getlist('users[]')
group.name = name
for user in users:
for ingroup in group.ingroup.all():
if ingroup.pk != user:
group.ingroup.remove(user)
TeamMembership.objects.filter(pk=user).update(ingroup=False)
group.ingroup.add(user)
TeamMembership.objects.filter(pk=user).update(ingroup=True)
group.save()
return redirect('teamsettings_members', team_pk)
feedback = FeedbackSupportForm()
context = {
'feedback' : feedback,
'group' : group,
'requested_team': requested_team,
}
return render(request, 'team/update_group.html', context)
return redirect('team', team_pk)
解决方案
推荐阅读
- android - FCM 推送通知数据导出到链接的 BigQuery 不起作用
- c# - LINQ:根据最新时间通过选定的 ID 获取唯一行
- c - C中的分段错误
- c++ - C++:通过内部链接向前声明 const
- c# - 将数组移交给 C# 中动态加载的 c++ DLL 时出现 System.AccessViolationException
- java - 在同一事件中心注册的两个事件处理器主机
- uml - 什么是 UML 概要图以及何时使用?
- javascript - 文件验证和确认
- python-3.x - 使用列中的标题和值转换 Python Json.dump
- python - 将转换为具有单个项目的列表的字符串拆分为多个项目