python - 在 Django 中更新表单时如何更改状态?
问题描述
我正在使用 Django 表单更新,但我面临一个小问题,我在表单更新中有 3 个字段,,,,,name
现在image
如果status
用户在表单中上传图像,那么状态应该在我的数据库中自动更改。
这是我的forms.py
文件...
class UpdateForm(forms.ModelForm):
model = Product
fields = ['name', 'image', 'status']
这是我的views.py
文件...
def myview(request, id):
datas=Product.objects..get(pk=id)
form = UpdateForm(instance=datas)
if request.method === 'POST'
form = UpdateForm(request.POST or None, request.FILES or None, instance=datas)
if form.is_valid():
edit = form.save(commit=False)
edit.save()
return HttpResponse('Success')
else:
return HttpResponse('Fail')
template_name='test.html'
context={'datas':datas}
return render(request, template_name, context)
默认status
在0
我的数据库中,如果用户上传的图片status
应该1
在我的数据库中,请让我指导我该怎么做。
解决方案
最好的方法是覆盖save()
表单类的方法。一个可能的实现可能是:
class UpdateForm(forms.ModelForm):
...
def save(self, commit=True):
instance = super(UpdateForm, self).save(commit=False)
# Set status if saving picture
if instance.image:
instance.status = 1
if commit:
instance.save()
return m
推荐阅读
- c# - 如何在 UITableView 中交替行颜色
- php - Woocommerce 中 XML 导入文件的产品价格翻倍
- java - Java 错误帮助
- javascript - Sinon 存根错误:“尝试包装已经包装的帖子”,即使我正在恢复
- java - 为什么我必须添加与父 pom 的依赖项?
- database - Firebase 数据库和 Ionic
- c# - 如何更改单选按钮显示文本
- google-apps-script - 选择整行作为范围(列数不定)
- java - JavaFX:从 ChoiceBox 检索值时我无法检测到 null
- configuration - 暂停然后唤醒:rtcwake 的 cron,Beaglebone Black