в четвъртата част от урока "Джанго", той използва django.views.generic.ListView
, но в Класическа основа за приложния изглед на API, ListView
е в django.views.generic.list.ListView
, Каква е разликата между django.views.generic.list.ListView
и django.views.generic.ListView
?
Отговори:
1 за отговор № 1И двата са точно същите като същите. Можете да го проверите
import inspect
from django.views.generic import ListView
print(inspect.getfile(ListView))
from django.views.generic.list import ListView
print(inspect.getfile(ListView))
1 за отговор № 2
Най- ListView
клас всъщност живее django/views/generic/list.py
, Но това е изходният код на django/views/generic/__init__.py
:
from django.views.generic.base import RedirectView, TemplateView, View
from django.views.generic.dates import (
ArchiveIndexView, DateDetailView, DayArchiveView, MonthArchiveView,
TodayArchiveView, WeekArchiveView, YearArchiveView,
)
from django.views.generic.detail import DetailView
from django.views.generic.edit import (
CreateView, DeleteView, FormView, UpdateView,
)
from django.views.generic.list import ListView
__all__ = [
"View", "TemplateView", "RedirectView", "ArchiveIndexView",
"YearArchiveView", "MonthArchiveView", "WeekArchiveView", "DayArchiveView",
"TodayArchiveView", "DateDetailView", "DetailView", "FormView",
"CreateView", "UpdateView", "DeleteView", "ListView", "GenericViewError",
]
class GenericViewError(Exception):
"""A problem in a generic view."""
pass
Както можете да видите, той импортира всички общи изгледи от съответните им модули. Това е просто удобство, което ви позволява да импортирате някой или всички класове django.views.generic
без да се отнасят към отделните модули.