在mongoengine模型字段中引用SQL模型

问题描述 投票:0回答:1

我在我的锻炼日历Django项目中使用mongoengine存储具有不同字段的锻炼,具体取决于用户使用的电梯,其中有多少等等。

我已经定义了一个Workout对象,它代表一个人在某个特定日期完成的一次锻炼。

class Workout(Document):
    id = IntField(unique=True, null=False)
    date = DateTimeField()
    lifts = EmbeddedDocumentListField(LiftSerie)
    cardio = EmbeddedDocumentListField(CardioSerie)

有些人可能会注意到没有代表锻炼者的字段。这就是我的问题所在。在我的Django项目中,我定义了一个自定义的User模型,而不是普通的django.contrib.auth.models.User对象:

class User(AbstractUser):
    REQUIRED_FIELDS = []
    USERNAME_FIELD = 'email'
    email = models.EmailField(
        unique=True,
        },
    )

这个模型是一个普通的Django模型,在我的案例中用SQL数据库SQLite表示。我希望这个模型在我的user mongoengine模型中充当Workout字段。像这样的东西:

class Workout(Document):
    id = IntField(unique=True, null=False)
    date = DateTimeField()
    lifts = EmbeddedDocumentListField(LiftSerie)
    cardio = EmbeddedDocumentListField(CardioSerie)
    person = ReferenceField(User) #New row

这有可能以某种方式实现吗?或者我需要在我的网络应用程序中引入冗余,只需在我的mongoengine模型中添加一个email字段来表示用户(电子邮件是User中的一个独特字段)。

django mongoengine
1个回答
1
投票

我将实现一个自定义模型管理器,通过使用db_manager实现您要求的查询

通过使用两种不同的数据库类型,您实现了大量额外的复杂性。如果我是你,我会通过利用Postgres的NoSQL和JSON功能来简化数据库基础架构。

© www.soinside.com 2019 - 2024. All rights reserved.