def test_callable_related_name():
class Foo(TestModel):
pass
def rel_name(field):
return '{}_{}_ref'.format(field.model_class._meta.name, field.name)
class Bar(TestModel):
fk1 = ForeignKeyField(Foo, related_name=rel_name)
fk2 = ForeignKeyField(Foo, related_name=rel_name)
class Baz(Bar):
pass
assert Foo.bar_fk1_ref.rel_model is Bar
assert Foo.bar_fk2_ref.rel_model is Bar
assert Foo.baz_fk1_ref.rel_model is Baz
assert Foo.baz_fk2_ref.rel_model is Baz
assert not hasattr(Foo, 'bar_set')
assert not hasattr(Foo, 'baz_set')
评论列表
文章目录