(Джанго) Невозможно обновить / добавить во многие поля - PullRequest
0 голосов
/ 21 мая 2018

Итак, я в настоящее время нахожусь в проекте, где я хочу, чтобы руководители групп обновляли свои группы и добавляли / удаляли участников, но это не работает, и я не знаю, почему я попытался сделать это способом добавления / удаления, как вы можете видеть в кодеunder.

Как это можно исправить?

Модели

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)
...