Hen*_*ryM 1 python django django-forms
我有一个 Django 模型表单,当我使用以下内容时,它没有保存
if request.method == 'POST':
form = AbsenceForm(request.POST, instance=request.user)
if form.is_valid():
form.save()
Run Code Online (Sandbox Code Playgroud)
表格.py
class DateInput(forms.DateInput):
input_type = 'date'
class AbsenceForm(forms.ModelForm):
class Meta:
model = NotWorking
exclude = ['user']
widgets = {
'date': DateInput()
}
Run Code Online (Sandbox Code Playgroud)
你能帮忙吗?
你用instance错了。
instance模型表单上的 应该与您所指的模型属于同一类。它在UpdateViews 中用于将表单绑定到现有实例,而不是在 上创建新实例save。
文档中的示例:
# Create a form to edit an existing Article, but use
# POST data to populate the form.
>>> a = Article.objects.get(pk=1)
>>> f = ArticleForm(request.POST, instance=a)
>>> f.save()
Run Code Online (Sandbox Code Playgroud)
为了将用户实例附加到表单,您应该将它设置在表单上,而不是instance像这个问题中详述的那样将其作为参数提供。
if request.method == 'POST':
form = AbsenceForm(request.POST)
form
if form.is_valid():
instance = form.save(commit=False)
instance.user = request.user
instance.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1822 次 |
| 最近记录: |