У меня есть подкласс Field:
class MyIDField(Field):
...
def to_python(self, value):
return to_base_36(value)
И я использую его в качестве первичного ключа, например:
class Foo(m.Model):
id = MyIDField(primary_key=True)
class Bar(m.Model):
foo = m.ForeignKey(Foo)
Тогда функция MyIDField.to_python
не вызывается при доступе к Bar.foo_id
:
>>> b = Bar.objects.all()[0]
>>> b.foo_id
1234
>>> b.foo.id
'ya'
>>>
Это раздражает по нескольким причинам, но наиболее существенно, потому что оно ломает выпадающие меню в админке - они не выбирают правильные значения (пункты меню имеют , были to_python
'd, но значение по умолчанию: , а не , to_python
'd).
Это я что-то не так делаю? Или это проблема с Джанго?