Django:Field.to_python未在外键ID上调用?
我有一个Field的子类: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
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接受,但没有修复: