Django:Field.to_python未在外键ID上调用?

Django:Field.to_python未在外键ID上调用?,django,django-models,django-admin,Django,Django Models,Django Admin,我有一个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) 然后,当我访问Bar.foo\u

我有一个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)
然后,当我访问
Bar.foo\u id
时,不会调用
MyIDField.to\u python
函数:

>>> b = Bar.objects.all()[0] >>> b.foo_id 1234 >>> b.foo.id 'ya' >>> >>>b=Bar.objects.all()[0] >>>b.foo_id 1234 >>>b.foo.id “是的” >>> 这很烦人,有几个原因,但最重要的是它破坏了admin中的下拉菜单-它们没有选择正确的值(菜单项是
to_python
'd,但默认值不是
to_python
'd)


这是不是我做错了什么?或者这是Django的问题?

re:titles中的标记。当我浏览问题时,这是一个我很欣赏的惯例,这就是我为什么这么做的原因。然而,如果你能告诉我一些社区指导方针不鼓励这种行为,我很乐意停止。我也有同样的问题。有解决方案吗?抱歉,忘了更新:缺陷已被Django接受,但没有修复: