Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以在Django模型中使用变量字符串before.delete_Python_Django_Variables_Delete Row - Fatal编程技术网

Python 是否可以在Django模型中使用变量字符串before.delete

Python 是否可以在Django模型中使用变量字符串before.delete,python,django,variables,delete-row,Python,Django,Variables,Delete Row,从概念上讲,我想这样做: deletestring = graphname+'.objects.filter('+graphname+'aid_id='+myid+')' deletestring.delete() 其中graphname和myid是变量,但这给了我一个“str”对象没有属性“delete”AttributeError。我如何更改它以告诉python/Django使用我的字符串从模型中删除匹配的记录?谢谢 更新: 多亏了尚旺,部分问题得以解决 # This works gra

从概念上讲,我想这样做:

deletestring = graphname+'.objects.filter('+graphname+'aid_id='+myid+')'
deletestring.delete() 
其中graphname和myid是变量,但这给了我一个“str”对象没有属性“delete”AttributeError。我如何更改它以告诉python/Django使用我的字符串从模型中删除匹配的记录?谢谢

更新: 多亏了尚旺,部分问题得以解决

# This works
graphname = 'g5'
modelnamevar = apps.get_model('nbig', graphname)
modelnamevar.objects.filter(g5aid_id=myid).delete()   

# This does not work:
graphname = 'g5'
modelnamevar = apps.get_model('nbig', graphname)
myfieldname = graphname + 'aid_id'
modelnamevar.objects.filter(myfieldname=myid).delete()   
我收到一条消息“无法将关键字“myfieldname”解析为字段。
是否可以转换此字符串以便将其识别为字段名?谢谢!

在django中,您可以使用以下方法从字符串中获取模型:

from django.apps import apps
Model = apps.get_model(app_label='your-app-label', model_name='graphname')
Django博士关于


顺便说一句,不要使用字符串来编写程序,它不会执行。

在另一篇文章的帮助下,我发现这样做可以:

modelname='g5'
modelnamevar = apps.get_model('nbig', modelname)
myfield = modelname + 'aid_id'
kwargs = {myfield: myid}
modelnamevar.objects.filter(**kwargs).delete()   

graphname是您定义的模型的名称吗?是的,graphname是保存模型名称的变量,也是模型字段的前缀(例如:graphname='g2',field name='g2aid_id')。只需使用
exec
../s即可