我意识到我的逻辑存在缺陷,导致循环导入。
这是我想要完成的事情:
managers.py (与models.py分开)
class TicketManager(models.Manager):
def create_in_atom(self, ticket):
if type(ticket) is not Ticket:
raise Exception('Not a Ticket object.')
这会产生此错误:
NameError:全局名称'Ticket'未定义
然后我尝试导入它:
from models import Ticket
产生:
ImportError:无法导入名称Ticket
如何检查传递给TicketManager函数的参数是否为“Ticket”类型,TickerManager属于该类型?
答案 0 :(得分:1)
您可以动态获取模型,而不是导入:
from django.apps import AppConfig
class TicketManager(models.Manager):
def create_in_atom(self, ticket):
if type(ticket) is not AppConfig.get_model('Ticket'):
raise Exception('Not a Ticket object.')
答案 1 :(得分:0)