Как правильно именовать поля модели django, которые являются зарезервированными именами python? - PullRequest
5 голосов
/ 18 сентября 2009

У меня есть модель, которая должна иметь поле с именем complex, а другое - с именем type. Это оба зарезервированные имена Python. Согласно PEP 8, я должен назвать их complex_ и type_ соответственно, но django не позволит мне иметь поля с именами в конце. Какой правильный способ справиться с этим?

Ответы [ 2 ]

4 голосов
/ 18 сентября 2009

С этими примерами проблем нет. Просто используйте complex и type. Вы находитесь только в очень ограниченной области видения (само определение класса). После этого вы будете получать к ним доступ с помощью точечной нотации (self.type), поэтому нет никакой двусмысленности:

Python 2.6.2 (release26-maint, Apr 19 2009, 01:58:18) 
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> class Foo(object):
...     type = 'abc'
... 
>>> f = Foo()
>>> f.type
'abc'
>>> class Bar(object):
...     complex = 123+4j
... 
>>> bar = Bar()
>>> bar.complex
(123+4j)
>>> 
1 голос
/ 18 сентября 2009

Вы действительно хотите использовать аргумент db_column="complex" и называть свое поле чем-то другим?

...