关键字未传入函数
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
我已经尝试为 **kwargs 关闭 refname 但似乎仍然无法让它获取字段值。
问题不在于你如何调用这个函数:这个函数本身并没有做你想做的事情。
您需要更改您的通话方式 get
。您需要使用字典 there:
而不是直接传入 refname
workingobj = tablename.objects.get(**{refname: uid})
现在您只需按正常方式调用该函数即可:
updatetable(len(sr), 'posts_added', managementmetrics, startdtg, 'update_dtg_start')
(您还应该考虑重命名 tablename
参数:您传递的不是 table 名称,这意味着一个字符串,而是一个模型 class 对象。)
我正在使用 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
我已经尝试为 **kwargs 关闭 refname 但似乎仍然无法让它获取字段值。
问题不在于你如何调用这个函数:这个函数本身并没有做你想做的事情。
您需要更改您的通话方式 get
。您需要使用字典 there:
workingobj = tablename.objects.get(**{refname: uid})
现在您只需按正常方式调用该函数即可:
updatetable(len(sr), 'posts_added', managementmetrics, startdtg, 'update_dtg_start')
(您还应该考虑重命名 tablename
参数:您传递的不是 table 名称,这意味着一个字符串,而是一个模型 class 对象。)