我需要通过列列表订购Django查询集。其中一些包含减号,例如IP-A。
现在Django抱怨参数无效。
用这些字符处理列的正确方法是什么?重命名列不是一种选择,因为模型已修复。
通常[-
)。
db_column=…
parameter [Django-doc]将Django模型中的字段名称转换为数据库中的不同列名称。例如:db_column=…
但是,在Django ORM中以及几乎所有与模型对象的交互中,数据库侧的列名称都可以看作是“技术细节”。 ORM使用字段名称。因此,您可以使用以下方法对模型对象进行排序:
class MyModel(models.Model): ip_a = models.CharField(max_length=128, db_column='IP-A')
ORM将转换为实际的数据库列,从而在MyModel.objects.order_by('ip_a')
列的幕后进行排序。