首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何实现编辑概要页面?

如何实现编辑概要页面?
EN

Stack Overflow用户
提问于 2022-03-30 22:30:06
回答 1查看 61关注 0票数 0

我试图为编辑概要文件提供我的视图,但是它在保存数据时不起作用,我不知道我做错了什么,如果它应该像普通形式一样工作,对吗?表单可以在我的模板中看到,问题是在保存时,它没有保存任何东西

views.py

代码语言:javascript
复制
def EditProfilePageView(request):
    # dictionary for initial data with
    # field names as keys
    context = {}

    # add the dictionary during initialization
    form = RegisterForm(request.POST or None)
    if form.is_valid():
        form.save()
        return redirect('profile')


    context['form'] = form
    return render(request, 'Usuarios/edit-profile.html', context)

form.py

代码语言:javascript
复制
class RegisterForm(UserCreationForm):
    username=forms.CharField(label="Usuario",widget=forms.TextInput(attrs={'class': 'form-control'}))
    email=forms.EmailField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    phone1=forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    phone2=forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    fax = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    email = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    website = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    socialMedia1 = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    socialMedia2 = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    socialMedia3 = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    alternativeContact = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    country = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    address = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    city = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    state = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))
    zip = forms.CharField(widget=forms.TextInput(attrs={'class': 'form-control'}))




    password1 = forms.CharField(
        label="Contraseña",
        widget=forms.PasswordInput(attrs={'class':'form-control', 'type':'password', 'align':'center'}),
    )
    password2 = forms.CharField(
        label="Confirma Contraseña",
        widget=forms.PasswordInput(attrs={'class':'form-control', 'type':'password', 'align':'center'}),
    )


    class Meta:
        model=User
        fields=['phone1','phone2','fax','email','website','socialMedia1','socialMedia2',
                'alternativeContact','country','address','city','state','zip']
        widgets = {
            'password': forms.TextInput(attrs={'class': 'form-control'}),
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-31 00:32:38

坏消息是,您不能使用UserCreationForm模型来保存自定义字段,如city、zip、...etc

UserCreationForm模型设计用于处理在Django中构建的普通用户模型字段,如:

代码语言:javascript
复制
fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2', )

因此,您不能在其上创建或放置其他字段,这意味着视图中的窗体将不会接收您添加的其他字段,因为您试图为所需字段添加空数据,这将为某些必需字段引发错误。即使您将数据添加到这些字段中,但这些字段不会在表单中添加。

您可以放弃处理UserCreationForm模型,然后可以通过ModelForm自定义您自己的表单以实现您的目标。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71684846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档