这两个 django 导入有什么区别

what is the difference between this two django imports

我是 django 的新手,我有点困惑:

from django.views.generic.detail import DetailView

from django.views.generic import DetailView

我试图在文档中阅读它,但找不到答案。

没有区别。两个导入都指向相同的 class.

区别在于您还可以从包中导入什么。来自 django.views.generic.detail 的 DetailView 相关 classes 可导入:SingleObjectMixin, BaseDetailView, SingleObjectTemplateResponseMixin, DetailView

django.views.generic 充当您日常生活中实际使用的 classes 的包装器。您可以在此处 class 在一个命令中导入诸如 CreateView、DeleteView、FormView、UpdateView 之类的东西,但不能导入内部使用的 Mixin 类。

只要不需要使用 mixin,就坚持使用

from django.views.generic import DetailView