Mysql Django查询:何时使用'';

Mysql Django查询:何时使用'';,mysql,django,Mysql,Django,我只是不明白为什么有时必须使用Model.objects.filter('fieldname'=foo)之类的东西,有时只使用fieldname而不使用“” 你能给我解释一下吗?在django ORM的filter()方法中,不能将字符串作为字段传递,可以将字段值作为字符串传递 Model.objects.fiiter('fieldname'=foo)的语法错误 它可以是: Model.objects.fiiter(fieldname='foo') 或 foo='abc' Model.objec

我只是不明白为什么有时必须使用Model.objects.filter('fieldname'=foo)之类的东西,有时只使用fieldname而不使用“”


你能给我解释一下吗?

在django ORM的filter()方法中,不能将字符串作为字段传递,可以将字段值作为字符串传递

Model.objects.fiiter('fieldname'=foo)的语法错误

它可以是:

Model.objects.fiiter(fieldname='foo') 或 foo='abc'
Model.objects.fiiter(fieldname=foo)

'fieldname'=foo
不是有效的Python语法。对于我来说,当字符串作为字典的键时,我更喜欢单引号(
cred['password']
getattr(person,'location')
),在所有其他情况下(
site_name=“stackoverflow.com”
doc.xpath(//div[@class='article']”
)。不要忘记,如果字符串本身有一个单引号或双引号,那么字符串必须用双引号或单引号括起来。亲爱的Ashutosh和其他人谢谢。我在帖子中犯了一个错误,但我的意思是:Model.objects.filter(fieldname\u isnull=True)。order\u by('-Model\u id')).values_list('model_id','model_date')。distinct()在那里,我对字段名进行了isnull检查,不带“”,对排序则带“”。