关键字未传入函数

2024-09-26 22:11:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我和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”解析到字段中。选项有:长度更新,更新完成,更新开始

我尝试过为**kwargs切换refname,但似乎仍然无法让它接受字段值


Tags: djangoaddedlenmodelsupdatestartpostssr
1条回答
网友
1楼 · 发布于 2024-09-26 22:11:47

问题不在于如何调用这个函数:函数本身并不是您想要的

您需要更改调用get的方式。您需要使用dictthere,而不是直接传入refname:

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

现在您只需以正常方式调用函数:

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

(还应考虑重命名tablename参数:传递的不是表名(表示字符串),而是模型类对象。)

相关问题 更多 >

    热门问题