Путаница при импорте общих представлений 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