簡體   English   中英

保存之前的Django表單更改實例屬性

[英]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並根據對memberform.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM