我正在尝试创建一个允许用户更新其名称的表单,我使用的是form.form而不是ModelForm,因为它可以让您更好地控制表单的样式,因为您可以使用小部件。当我去保存表单时,它说updateNameForm没有属性保存
查看
def UpdateName(request,user_id):
if request.method == "POST":
form = UpdateNameForm(request.POST,initial=initial)
if form.is_valid():
name = form.cleaned_data['name']
form.save()
else:
form = UpdateNameForm(initial=initial)
forms.py
class UpdateNameForm(forms.Form):
name = forms.CharField(
required=True,
label="*Status",
widget=forms.widgets.Select(attrs={'class' : 'span6 small-margin-top small-margin-bottom'})
)
答案 0 :(得分:3)
标准表单类确实没有save
属性 - 它对要保存的任何模型一无所知。您需要使用ModelForm。
另请注意,您需要将instance
参数传递给表单,以使其更新现有实例,而不是创建新实例。你可能根本不需要initial
。
答案 1 :(得分:0)
def UpdateName(request,user_id):
user = get_user(user_id)
if request.method == "POST":
form = UpdateNameForm(request.POST,initial=initial)
if form.is_valid():
name = form.cleaned_data['name']
user.name = name
user.save()
else:
form = UpdateNameForm(initial=initial)