django db编程错误

django db编程错误,django,django-models,Django,Django Models,当我尝试重置数据库时(我创建了一个新的空数据库) 当我运行这个命令python manage.pymakemigrations(或migrate)时,我遇到了这个错误 我删除了所有应用程序中的所有迁移文件(没有\uuu init\uuu)以及.pyc文件 对这个问题有什么想法吗 (编辑i添加了回溯)在类的声明或定义过程中,类的所有非方法属性都会得到评估/执行。因此,当解释器到达类SampleViewSet时,它会尝试执行行general=general.objects.get(is_active

当我尝试重置数据库时(我创建了一个新的空数据库)

当我运行这个命令
python manage.py
makemigrations(或migrate)时,我遇到了这个错误

我删除了所有应用程序中的所有迁移文件(没有
\uuu init\uuu
)以及.pyc文件

对这个问题有什么想法吗


(编辑i添加了回溯)

在类的声明或定义过程中,类的所有非方法属性都会得到评估/执行。因此,当解释器到达类
SampleViewSet
时,它会尝试执行行
general=general.objects.get(is_active=True)
,但当然您的数据库还不存在,因为调用
.get
意味着一个数据库查询,您会得到一个错误

通常,任何可能导致数据库查询的语句都应该由app configs
ready
方法、某些中间件/上下文处理器或请求中的视图运行。查看代码,它看起来不像您在任何地方使用
general
,因此您可以简单地将其删除:

class SampleViewSet(viewsets.ModelViewSet):
    queryset = model.objects.filter(field=site_general.field)

您可能会说,
model.objects.filter(…)
也会导致查询,但是
.filter
返回一个
QuerySet
,而QuerySet是惰性的,因此仅在需要时才进行计算,因此,这不会导致任何错误。

在类的声明或定义过程中,会计算/执行类的所有非方法属性。因此,当解释器到达类
SampleViewSet
时,它会尝试执行行
general=general.objects.get(is_active=True)
,但当然您的数据库还不存在,因为调用
.get
意味着一个数据库查询,您会得到一个错误

通常,任何可能导致数据库查询的语句都应该由app configs
ready
方法、某些中间件/上下文处理器或请求中的视图运行。查看代码,它看起来不像您在任何地方使用
general
,因此您可以简单地将其删除:

class SampleViewSet(viewsets.ModelViewSet):
    queryset = model.objects.filter(field=site_general.field)

您可能会说,
model.objects.filter(…)
也会导致查询,但是
.filter
返回一个
QuerySet
,而QuerySet是惰性的,因此只在需要时进行计算,所以不会导致任何错误。

@AbdulAzizBarkat iedited@AbdulAzizBarkat
class SampleViewSet(ViewSet.ModelViewSet):general=general.objects.get(is_active=True)queryset=model.objects.filter(field=site\u general.field)
@AbdulAzizBarkat i addedWhat是
model.objects.filter(field=site\u general.field)中的
site\u general
?@AbdulAzizBarkat我认为views.py不会引起问题,因为我多次更改了数据库,但现在出现了问题,我没有更改views.py和该视图。@AbdulAzizBarkat Iedited@AbdulAzizBarkat
class SampleViewSet(ViewSet.ModelViewSet):general=general.objects.get(是否处于活动状态=True)queryset=model.objects.filter(field=site\u general.field)
@AbdulAzizBarkat i添加了
model.objects.filter(field=site\u general.field)中的
site\u general
?@AbdulAzizBarkat我不认为views.py会引起问题,因为我多次更改了数据库,但现在出现了问题,我没有更改views.py和该视图。我在评论行获得了它,它工作了,但这是一次奇怪的体验。谢谢你的帮助,我在评论线上找到了它,它很有效,但这是一次奇怪的经历。谢谢你的帮助
class SampleViewSet(viewsets.ModelViewSet):
    queryset = model.objects.filter(field=site_general.field)