【发布时间】:2018-07-10 08:12:48
【问题描述】:
请问我的 Django 项目中的模型关系存在问题。例如,我有一个模型Foo,它继承自模型混合FooBarMixin,这是一个抽象类,Bar 是一个模型,但与Foo 有OnetoOne 关系。基本上这是当前的实现。
class Foo(FooBarMixin):
pass
class FooBarMixin(model.Model):
bar = model.OneToOneField(Bar, on_delete=CASCADE,
related_name="tracked_%(class)s")
class Meta:
abstract = True
class Bar(model.Model):
pass
是否可以在不使用OnetoOne 关系的情况下将Bar 数据存储在子模型Foo 上?如果是这样,我该怎么做?谢谢
【问题讨论】:
-
我不明白你在问什么。你的 mixin 定义了与 bar 的一对一关系,那么你怎么能期望在没有关系的情况下存储数据呢?
-
那你为什么要指定这个
OneToOneField呢? -
抱歉,我希望
Bar中的字段在Foo表中可见。 -
@Johnbosco:您可以为此修补
__getattr__。 -
@Johnbosco:你可以在你想要的任何级别上修补它。在
FooBarMixin或Foo,如果您只希望Foos 的这种行为。
标签: python django django-models django-rest-framework