我有这两个模型(示例),当我试图运行测试时,它会错误地说:
no such table: my_app_modelA
-如果我向上滚动,我可以看到它在创建
modelB
(我认为是由于
default
正在应用)。有办法订这些吗
modelA
总是会在
小精灵
?或者我不应该将该方法引用为默认属性?只是想让我的测试工作,这是我的症结所在。
我的模特看起来是这样的:
class modelA(models.Model):
attribute = models.IntegerField()
active = models.BooleanField(default=False)
@classmethod
def get_active_attribute(cls):
return modelA.objects.get(active=True).attribute
class modelB(models.Model):
attribute = models.IntegerField(default=modelA.get_active_attribute())
我的问题是:
-
这是一个可以接受的事情-让默认调用另一个模型方法?
-
有没有办法处理这些模型的创建,我可以保证
模特儿
先创建,所以
模型B
能否在我的测试中成功创建?