Django ValueError - 将用户添加到用户组

凯特

我正在创建一个 Django 表单,您可以在其中将用户添加到 UserTeam(下面的 UserTeams 模型)。'invite' 页面(如下)查询 Team 模型以获取当前团队的 id,然后将其分配给 'teamID',因此您只能将用户添加到当前团队。(我已禁用此字段,因此用户无法更改团队)然后用户选择他们想要添加的用户,并提交表单。我正在尝试使用“Kate FC”团队并添加玩家“steven”。但是,当我提交表单时,出现此错误:

/teams/1/invite/ 处的 ValueError

无法分配“'Kate FC'”:“UserTeams.teamID”必须是“Team”实例。

这个错误是什么意思??

class UserTeams(models.Model):
    userID = models.ForeignKey(User,on_delete=models.CASCADE)
    teamID = models.ForeignKey(Team,on_delete=models.CASCADE)

class Team(models.Model):
    name = models.CharField(max_length=100)
    venue = models.CharField(max_length=100)
    countryID = models.ForeignKey(Countries, on_delete=models.CASCADE)
    owner = models.ForeignKey(User)


def invite(request, teamID):
    try:
        query = Team.objects.get(id=teamID)
    except:
        raise Http404()
    if request.method == 'POST':
        form = InvitePlayerForm(request.POST or None, initial={'teamID': query})
        if form.is_valid():
            userteam = form.save(commit=False)
            userteam.save()
        return redirect('teammanager/teams.html')
    else:

        form = InvitePlayerForm(initial={'teamID': query})
        query = Team.objects.get(id=teamID)
    return render(request, 'teammanager/invite.html', {
        "team": query,                  
        "form": form
   })

表格:

    class InvitePlayerForm(forms.ModelForm):
    teamID = forms.CharField(disabled=True)
    class Meta:

        model = UserTeams
        fields = ['teamID','userID']
阿拉斯代尔

teamID 是外键,因此您应该使用模型选择字段而不是 CharField:

class InvitePlayerForm(forms.ModelForm):
    teamID = forms.ModelChoiceField(queryset=Team.objects.all(), disabled=True)
    ...

或者您可以禁用__init__方法中的字段

class InvitePlayerForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(InvitePlayerForm, self).__init__(*args, **kwargs)
        self.fields['teamID'].disabled = True
    ...

或者,您可以将teamID字段留在表单之外,并在保存表单时设置该值:

if form.is_valid():
    userteam = form.save(commit=False)
    userteam.teamID = query
    userteam.save()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

了解将用户添加到Django组的视图

来自分类Dev

注册/注册表单提交后自动将用户分配给用户组 - Django

来自分类Dev

不论操作系统语言如何,都将用户帐户添加到用户组

来自分类Dev

如何将用户添加到另一个用户组?

来自分类Dev

Django 1.8:将用户添加到视图中的Modelform:非null约束失败

来自分类Dev

Django将用户详细信息添加到UserPost列表视图

来自分类Dev

Django将用户和列表模型添加到监视列表模型

来自分类Dev

使用远程身份验证后端时如何将用户添加到 Django 站点?

来自分类Dev

Django用户组仅用于权限?

来自分类Dev

自动将用户添加到组

来自分类Dev

将用户添加到组

来自分类Dev

从PHP将用户添加到组

来自分类Dev

PSEXEC:将用户添加到多台计算机上的远程桌面用户组

来自分类Dev

如何将Django组动态添加到请求用户

来自分类Dev

将用户添加到默认的“用户”组

来自分类Dev

Django在模板中获取用户组

来自分类Dev

无法将群组添加到Django用户

来自分类Dev

django中的自定义用户引发ValueError

来自分类Dev

使用Puppet将用户添加到多个组

来自分类Dev

在GitLab中将用户添加到组

来自分类Dev

AWS Cognito将用户从Lambda添加到组

来自分类Dev

将用户添加到SSH组安全吗?

来自分类Dev

将用户列表添加到多个组

来自分类Dev

使用API将用户添加到Yammer组

来自分类Dev

Powershell:将用户添加到阵列中的组

来自分类Dev

使用sudoedit将用户添加到sudo组?

来自分类Dev

AWS IAM将用户添加到组

来自分类Dev

Linux,无法将用户添加到第二组

来自分类Dev

如何将用户添加到“ sudo”组?