无法使用django表单将数据保存在数据库中
Not able to save data in database using django form
我正在尝试使用 django 表单将数据保存在数据库中,但它没有保存,这是我的
forms.py
class PlanForm(forms.ModelForm):
class Meta:
model = Plans
fields = ['plan_name', 'plan_note', 'plan_price', 'access_to']
plan_name = forms.CharField(max_length=255, widget=forms.TextInput( attrs={
'class':'form-control',
'id':'plan_name'
} ))
plan_note = forms.CharField(max_length=255, widget=forms.TextInput( attrs={
'class':'form-control',
'id':'plan_note'
} ))
plan_price = forms.CharField(max_length=255, widget=forms.TextInput( attrs={
'class':'form-control',
'id':'plan_price'
} ))
can_access = forms.ModelMultipleChoiceField(
queryset=Add_e_office.objects.all(),
widget=forms.CheckboxSelectMultiple
)
这是我的 views.py
def add_plan(request):
if request.method == 'POST':
form = PlanForm(request.POST)
if form.is_valid():
form.save(commit=False)
form.user = request.user
form.save()
messages.success(request,"Plan created successfully.")
return redirect(request.path)
return render(request, 'backend/add_plan.html',{'form':form})
else:
form = PlanForm()
return render(request, 'backend/add_plan.html',{'form':form})
当我提交我的表单时,我收到了 POST
请求,但它没有在数据库中保存数据,实际上它忽略了 form.is_valid()
部分。
查看此 post 后,我得到了一个解决方案,用户不在我的表单字段中,我正在尝试访问它,这就是我无法将数据保存在我的数据库中的原因。删除用户并仅保留 form.is_valid()
后有效。
调试时尝试使用 form.errors
以了解您遇到的问题。
我正在尝试使用 django 表单将数据保存在数据库中,但它没有保存,这是我的
forms.py
class PlanForm(forms.ModelForm):
class Meta:
model = Plans
fields = ['plan_name', 'plan_note', 'plan_price', 'access_to']
plan_name = forms.CharField(max_length=255, widget=forms.TextInput( attrs={
'class':'form-control',
'id':'plan_name'
} ))
plan_note = forms.CharField(max_length=255, widget=forms.TextInput( attrs={
'class':'form-control',
'id':'plan_note'
} ))
plan_price = forms.CharField(max_length=255, widget=forms.TextInput( attrs={
'class':'form-control',
'id':'plan_price'
} ))
can_access = forms.ModelMultipleChoiceField(
queryset=Add_e_office.objects.all(),
widget=forms.CheckboxSelectMultiple
)
这是我的 views.py
def add_plan(request):
if request.method == 'POST':
form = PlanForm(request.POST)
if form.is_valid():
form.save(commit=False)
form.user = request.user
form.save()
messages.success(request,"Plan created successfully.")
return redirect(request.path)
return render(request, 'backend/add_plan.html',{'form':form})
else:
form = PlanForm()
return render(request, 'backend/add_plan.html',{'form':form})
当我提交我的表单时,我收到了 POST
请求,但它没有在数据库中保存数据,实际上它忽略了 form.is_valid()
部分。
查看此 post 后,我得到了一个解决方案,用户不在我的表单字段中,我正在尝试访问它,这就是我无法将数据保存在我的数据库中的原因。删除用户并仅保留 form.is_valid()
后有效。
调试时尝试使用 form.errors
以了解您遇到的问题。