0

我们将 Django 用于在线网店,并希望升级到 Django 4。但是,由于在测试分支上升级,我们遇到了一个问题,我将在此处重点介绍。我们服务于两个不同的市场,我们称它们为市场 A 和 B :) 由于这两个市场可以具有不同的功能,INSTALLED_APPS因此我们的填充如下:

MARKET_SPECIFIC_APPS = {
    MARKET_A: [
        'market_a.apps.MarketAConfig',
        'payment_system_a.apps.PaymentSystemAConfig'
    ],
    MARKET_B: [
        'market_b.apps.MarketBConfig',
        'payment_system_b.apps.PaymentSystemBConfig',
    ],
}

if MARKET in MARKET_SPECIFIC_APPS:
    # If there is a market-specific app, add it to INSTALLED_APPS
    INSTALLED_APPS += MARKET_SPECIFIC_APPS[MARKET]

但是,在为每个市场运行 MARKET 特定测试时,只能MARKET_A通过。MARKET_B现在抛出一个错误,因为从 Django 3.2 升级到 Django 4

RuntimeError: Model class payment_system_b.models.payment.Payment doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

意思是,这个测试仍在运行,INSTALLED_APPS即使它不应该包含它,测试运行器也会包含它。

Django 4 更新日志中缺少关于此的任何更改吗?在升级到 Django 4 之前,运行这些特定于市场的测试运行良好

4

0 回答 0