/ / Aký je rozdiel medzi django.views.generic.list.ListView a django.views.generic.ListView v Django? - python, django

Aký je rozdiel medzi django.views.generic.list.ListView a django.views.generic.ListView v Django? - python, django

v štvrtej časti tutoriálu Django, použil django.views.generic.ListView, ale v Zobrazenie rozhrania rozhrania API pre zobrazenia založené na triede, ListView je v django.views.generic.list.ListView, Aký je rozdiel medzi django.views.generic.list.ListView a django.views.generic.ListView?

odpovede:

1 pre odpoveď č. 1

Obaja sú presne odkazujú na rovnakú triedu. Môžete to skontrolovať

import inspect
from django.views.generic import ListView
print(inspect.getfile(ListView))
from django.views.generic.list import ListView
print(inspect.getfile(ListView))

1 pre odpoveď č. 2

Na ListView Trieda skutočne žije django/views/generic/list.py. Ale to je zdrojový kód 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

Ako vidíte, všetky generické názory dováža z ich príslušných modulov.Je to len pohodlie, ktoré vám umožňuje importovať všetky triedy od django.views.generic bez odkazovanie jednotlivých modulov.