簡體   English   中英

關鍵字未傳遞功能

[英]Keyword Not Passing in Function

我正在使用Django模型。 我想將模型字段作為變量傳遞。 鑒於我的職能:

from django.models import models

def updatetable(value, fieldtitle, tablename, uid, refname):  
    workingobj = tablename.objects.get(refname=uid)
    currentvalue = getattr(workingobj, fieldtitle)
    setattr(workingobj, fieldtitle, currentvalue + value)
    workingobj.save()
    return

我努力了:

updatetable(len(sr), 'posts_added', managementmetrics, startdtg, refname=update_dtg_start)

updatetable(len(sr), 'posts_added', managementmetrics, startdtg, refname='update_dtg_start')

乃至

updatetable(len(sr), 'posts_added', managementmetrics, startdtg, {refname:update_dtg_start})

我收到錯誤消息:無法將關鍵字“ refname”解析為字段。 選項包括:length_of_update,update_dtg_finish,update_dtg_start

我曾嘗試將refname替換為** kwargs,但似乎仍然無法獲取該字段的值。

問題不在於您如何調用此函數:該函數本身無法執行您想要的操作。

您需要更改get 而不是refname直接傳遞,你需要使用字典

workingobj = tablename.objects.get(**{refname: uid})

現在,您只需以常規方式調用該函數:

updatetable(len(sr), 'posts_added', managementmetrics, startdtg, 'update_dtg_start')

(您還應該考慮重命名tablename參數:您不是在傳遞表名,這意味着一個字符串,而是一個模型類對象。)

暫無
暫無

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

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