Путаница при импорте общих представлений Django', основанных на классах

Изучая справочную документацию и некоторые учебники, я видел, что импорт для общих представлений Django на основе классов используется несколькими способами:

from django.views.generic import TemplateView, ListView

Or:

from django.views.generic.base import TemplateView
from django.views.generic.list.ListView

Я пробовал экспериментировать с обеими тактиками, и они обе, кажется, работают, но первый вариант кажется менее правильным.

Существуют ли все общие CBV в общем модуле, а также в подмодулях? Может ли Python импортировать классы из подмодулей, импортируя только вышестоящий модуль? Что на самом деле здесь происходит?

Любая помощь будет очень признательна!

<
from django.views.generic import CreateView 

Читая эту строку, вы понимаете, что вы импортируете generics view и только один в частности.

Из документации, касающейся импорта :

Всегда, когда это возможно, будьте как можно более явными в импорте.

Я бы сказал, что все в порядке, кроме последнего, это плохая практика в отношении PEP8

Вернуться на верх