加载 app2 时,在 app1 中创建模型



>想象一下,我有一个名为"价目表"的app1和一个名为"marketplaces"的app2。

在市场应用中,我想自动创建价目表。价目表(如果尚不存在)。 此价目表将在信号中使用,以根据几个因素自动填充价目表。

目前,我在信号中使用类似的东西:

price_list, _ = PriceList.objects.get_or_create(
    currency='EUR', is_default=False, customer_type='CONS',
    remarks='Marketplace')

我不喜欢这种方法,因为它重复了很多次,并且显然希望确定创建价目表。

我的问题。 每次 django 重新启动时,如何在另一个应用程序中get_or_create模型对象?

溶液

在您的app.__init__.py中手动定义您的应用程序配置。 它似乎没有在 django 1.10 中检测到

default_app_config = 'marketplaces.apps.MarketPlacesConfig'

覆盖您的 appconfig ready 方法:

class MarketPlacesConfig(AppConfig):
    name = 'marketplaces'
    def ready(self):
        from pricelists.models import PriceList, PriceListItem
        price_list_marketplaces, _ =  PriceList.objects.get_or_create(
            **settings.MARKETPLACES['price_list']

AppConfig.ready()django.db.models.signals 是我能想到的唯一方法。

相关内容

  • 没有找到相关文章

最新更新