簡體   English   中英

如何在 views.py 中動態 select django model 字段

[英]How to dynamically select django model fields in views.py

我正在使用 DRF,我正在嘗試動態地從 django model object 中獲取 select 字段,以便我可以將它們與傳入數據進行比較。 我知道如何手動執行此操作

def put(self, request):
    businessPage = BusinessPage.objects.get(id=request.data['id'])
    if businessPage.name != request.data['name']:
        businessPage.name = request.data['name']
    if businessPage.address != request.data['address']:
        businessPage.address = request.data['address']        
    businessPage.save()
    res = {
        'status': 'Success'
    }
    return Response(res)

雖然這行得通,但感覺非常混亂和重復,所以我開始尋找一種方法來動態檢查 object 字段是否與傳入數據匹配。

def put(self, request):
    businessPage = BusinessPage.objects.get(id=request.data['id'])
    for obj in request.data:
        if businessPage[obj] != request.data[obj]:
            businessPage[obj] = request.data[obj]
            
    businessPage.save()
    res = {
        'status': 'Success'
    }
    return Response(res)

我一直無法弄清楚從businessPage獲取正確字段的正確語法。 這可能嗎? 有沒有更好的方法來完成這個任務? 這里的任何幫助將不勝感激!

你可以這樣做:

bp_id = request.data.pop("id")
BusinessPage.objects.filter(id=bp_id).update(**request.data)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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