在视图中不将预填值写入模型的方法可以通过使用exclude
参数来实现。下面是一个示例代码:
from django import forms
class MyForm(forms.ModelForm):
my_field = forms.CharField()
class Meta:
model = MyModel
exclude = ['my_field'] # 将预填值排除在外
def my_view(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
# 在这里处理有效的表单数据
my_model = form.save(commit=False)
# 不将预填值写入模型
my_model.save()
return redirect('success')
else:
form = MyForm()
return render(request, 'my_template.html', {'form': form})
在上面的例子中,exclude
参数在Meta
类中使用,将my_field
字段排除在外,这样即使在视图中设置了预填值,它也不会被写入模型。