【发布时间】:2015-07-02 15:44:00
【问题描述】:
我在加载 py.test 期间收到 FATAL: database "xxxxxxxxx" does not exist。这是来自管理表单的加载,其中我有一个查询集被传递给ModelChoiceField
class CustomChoiceField(forms.ModelChoiceField):
def __init__(self, queryset=None, *args, **kwargs):
return super().__init__(SomeModel.objects.limited_qs(), *args, **kwargs)
class SomeModelForm(forms.ModelForm):
some_model = CustomChoiceField()
class Meta:
model = SomeModel
class SomeModelAdmin(admin.ModelAdmin):
form = SomeModelForm
我试过了
formfield_overrides = { models.ForiegnKey : {'queryset': ... } }
py.test 都会导致同样的问题
编辑
在__init__ 方法或formfield_overrides 中使用查询集也会中断迁移。
注意:这些都完全按照我希望它们在服务器上的工作方式 - 它们只是阻止我运行任何测试。
我如何让它通过(没有条件地注册我的管理内容;_;我喜欢 tdd)
【问题讨论】:
-
你的测试代码是什么样的?
-
我有 200 个测试,从 API 的集成测试到存根用户模型的单元测试。堆栈跟踪来自创建查询集的
__init__。它甚至不加载测试本身——只是出错。根是python3.4/site-packages/_pytest/config.py
标签: python django django-admin pytest django-migrations