Обычно имена полей, которые используются Django, являются переменными, которые вы определяете в классах модели. Это, если вы не используете некоторые сложные трюки, действительные Python идентификаторы, и они не могут содержать дефис (-
).
Можно использовать db_column=…
параметр [Django -doc] для перевода имени полей в модели Django в разные имена столбцов в базе данных. Например:
class MyModel(models.Model):
<b>ip_a</b> = models.CharField(max_length=128<b>, db_column='IP-A'</b>)
В ORM Django и почти во всех взаимодействиях с объектом модели, однако, имя столбца на стороне базы данных может рассматриваться как «техническая деталь». ORM работает с именем поля. Таким образом, вы можете сортировать объекты вашей модели с помощью:
MyModel.objects.order_by(<b>'ip_a'</b>)
ORM выполнит преобразование в столбцы реальной базы данных и, таким образом, отсортирует их за занавесами в столбце IP-A
.