【发布时间】:2017-06-12 19:25:06
【问题描述】:
为了演示一些功能,我需要在 Postgres 数据库中动态创建一系列模型和关系。
问题是这些模型不能干扰 Django 应用程序的正常运行中的查询或被查询返回。但是,它们必须具有模型的完整行为集,并且能够在演示期间通过查询返回。
使用工厂(我们主要使用 Factory Boy)是不完美的,因为模型如果不保存到数据库就无法查询,此时它们与常规操作查询交互。
第二个数据库也不完善,因为演示发生在正常的应用程序操作期间,因此“有效”模型实例仍然需要可用。
将模型标记为 is_demo 也不起作用,因为需要实例化六种不同类型的模型才能使演示按预期工作。
我可以清除使用 cron 作业或类似作业创建的特定模型,但它们会影响创建和计划作业之间的数据库。
在暂存环境中运行所有内容是可以接受的,但理想的答案是让我可以在生产版本上运行演示。
是否有我错过的公认方法或有用的库?
演示中涉及的示例模型:
class Transaction(models.Model):
amount = models.DecimalField(max_digits=8, decimal_places=2, db_index=True,
editable=False)
assigned_user = models.ForeignKey(User, on_delete=models.CASCADE)
date = models.DateField(db_index=True, editable=False)
description = models.CharField(max_length=255, null=True, blank=True)
is_declined = models.BooleanField(default=False)
is_pending = models.BooleanField(db_index=True)
fi_account = models.ForeignKey(
FinancialAccount, on_delete=models.CASCADE)
@property
def organization(self):
org = self.fi_account.organization
return org
我们需要能够查询此模型并成功使用其.organization 属性。不会影响其他查询。
【问题讨论】:
标签: python django postgresql django-models