[英]Django form change instance attribute before saving
正如我在標題中所說:
def profile(request, template='/member/profile.html'):
.....
member = get_object_or_404(Member, id=id)
# >>> member.qrcode
# <ImageFieldFile: upload/qrcode/2014-11-12/99_1.41578387725e12.jpg>
if request.method == 'POST':
form = ProfileForm(request.POST, request.FILES, instance=member)
# >>> member.qrcode
# <ImageFieldFile: 20140901192104.png>
if form.is_valid():
member = form.save(commit=False)
.....
在form = ProfileForm(request.POST, request.FILES, instance=member)
之后,立即更改表單實例member
。
因為我只想在member.type == 1
時保存member並根據對member
和form.cleaned_data
某些數據進行比較的結果來更改某些字段。
我認為在調用form.save()
之前更改member
的屬性非常不好。
我該如何更改?
如果使用commit = False調用save(),它將返回一個尚未保存到數據庫的對象。
https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method
member = form.save(commit=False)
if member.type == 1:
member.save()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.