从MultipleCheckBox获取值到Django用户个人资料模型中的属性

我正在尝试将类似“用户个人资料”的内容添加到现有的django网站。我有两个麻烦。其中之一是我必须在注册页面中显示一个multiplecheckbox,并且必须将所选数据添加到selected_features属性。但是我找不到适合的数据类型,并且总是遇到不同的错误。第二个是我有一个错误:  “唯一性约束失败:auth_user.username 当我使用ForeignKey时,我也遇到了错误。

这是模型

class UserAttribute(models.Model):
    user = models.OneToOneField(User,on_delete=models.CASCADE,related_name='profile')
    company = models.CharField(max_length=50)
    selected_features = models.CharField(validators=[validate_comma_separated_integer_list],max_length=15,null=True)

这是表格

class RegisterForm(forms.Form):
    first_name = forms.CharField(max_length=50,label="İsim")
    last_name = forms.CharField(max_length=50,label="Soyisim")
    username = forms.CharField(max_length=50,label="Kullanıcı Adı")
    company = forms.CharField(max_length=50,label="Şirket İsmi")
    email = forms.EmailField(max_length=50,label="E-mail Adresi")
    phone = forms.CharField(max_length=50,label="Telefon")
    password = forms.CharField(max_length=20,label="Parola",widget =forms.PasswordInput)
    confirm = forms.CharField(max_length=20,label="Parolayı Doğrula",widget =forms.PasswordInput)
    features = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple,choices=FEATURES,label="Modelinizde Kullanmak İstediğiniz Özellikleri Seçiniz:")
    def clean(self):
        first_name = self.cleaned_data.get("first_name")
        last_name = self.cleaned_data.get("last_name")
        username = self.cleaned_data.get("username")
        company = self.cleaned_data.get("company")
        email = self.cleaned_data.get("email")
        phone = self.cleaned_data.get("phone")
        password = self.cleaned_data.get("password")
        confirm = self.cleaned_data.get("confirm")
        feature = self.cleaned_data.get("features")

        if password and confirm and password !=confirm:
            raise forms.ValidationError("Parolalar Eşleşmiyor")

        values = {
                "username" : username,"password" : password,"first_name" : first_name,"last_name" : last_name,"company" : company,"email" : email,"phone" : phone,"feature": feature
        }
        return values

和视图

def register(request):
    form = RegisterForm(request.POST or None)
    if form.is_valid():
        first_name = form.cleaned_data.get("first_name")
        last_name = form.cleaned_data.get("last_name")
        username = form.cleaned_data.get("username")
        password = form.cleaned_data.get("password")
        email = form.cleaned_data.get("email")
        phone = form.cleaned_data.get("phone")
        newUser = User(username =username)
        newUser.set_password(password)
        newUser.first_name = first_name
        newUser.last_name = last_name
        newUser.email = email
        newUser.phone = phone
        user_profile = UserAttribute(user=newUser,company=form.cleaned_data.get("company"),selected_features=request.GET.getlist("feature"))
        newUser.save()
        user_profile.save()
        login(request,newUser)
        messages.success(request,"Başarıyla Kayıt Oldunuz...")

        return redirect("index")
    context = {
            "form" : form
        }
    return render(request,"register.html",context)
xiangxiangdetang 回答:从MultipleCheckBox获取值到Django用户个人资料模型中的属性

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2900586.html

大家都在问