diff --git a/cbv/fixtures/1.10.json b/cbv/fixtures/1.10.json index ee6b1ce5..aa3a9ece 100644 --- a/cbv/fixtures/1.10.json +++ b/cbv/fixtures/1.10.json @@ -16,9 +16,9 @@ "Django", "1.10" ], - "name": "django.views.generic", + "name": "django.contrib.auth.mixins", "docstring": "", - "filename": "/django/views/generic/__init__.py" + "filename": "/django/contrib/auth/mixins.py" } }, { @@ -28,9 +28,9 @@ "Django", "1.10" ], - "name": "django.views.generic.base", + "name": "django.contrib.auth.views", "docstring": "", - "filename": "/django/views/generic/base.py" + "filename": "/django/contrib/auth/views.py" } }, { @@ -40,9 +40,9 @@ "Django", "1.10" ], - "name": "django.views.generic.dates", + "name": "django.views.generic", "docstring": "", - "filename": "/django/views/generic/dates.py" + "filename": "/django/views/generic/__init__.py" } }, { @@ -52,9 +52,9 @@ "Django", "1.10" ], - "name": "django.views.generic.detail", + "name": "django.views.generic.base", "docstring": "", - "filename": "/django/views/generic/detail.py" + "filename": "/django/views/generic/base.py" } }, { @@ -64,9 +64,9 @@ "Django", "1.10" ], - "name": "django.views.generic.edit", + "name": "django.views.generic.dates", "docstring": "", - "filename": "/django/views/generic/edit.py" + "filename": "/django/views/generic/dates.py" } }, { @@ -76,9 +76,9 @@ "Django", "1.10" ], - "name": "django.views.generic.list", + "name": "django.views.generic.detail", "docstring": "", - "filename": "/django/views/generic/list.py" + "filename": "/django/views/generic/detail.py" } }, { @@ -88,9 +88,9 @@ "Django", "1.10" ], - "name": "django.contrib.auth.views", + "name": "django.views.generic.edit", "docstring": "", - "filename": "/django/contrib/auth/views.py" + "filename": "/django/views/generic/edit.py" } }, { @@ -100,9 +100,9 @@ "Django", "1.10" ], - "name": "django.contrib.auth.mixins", + "name": "django.views.generic.list", "docstring": "", - "filename": "/django/contrib/auth/mixins.py" + "filename": "/django/views/generic/list.py" } }, { @@ -860,13 +860,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], - "name": "allow_empty", - "value": "False", + "name": "login_url", + "value": "None", "line_number": -1 } }, @@ -875,13 +875,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], - "name": "allow_empty", - "value": "True", + "name": "permission_denied_message", + "value": "''", "line_number": -1 } }, @@ -890,12 +890,12 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], - "name": "allow_future", + "name": "raise_exception", "value": "False", "line_number": -1 } @@ -905,13 +905,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], - "name": "args", - "value": "", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -920,13 +920,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], - "name": "__cause__", - "value": "", + "name": "permission_required", + "value": "None", "line_number": -1 } }, @@ -935,13 +935,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "1.10" ], - "name": "content_type", - "value": "None", + "name": "args", + "value": "", "line_number": -1 } }, @@ -955,8 +955,8 @@ "Django", "1.10" ], - "name": "__context__", - "value": "", + "name": "__cause__", + "value": "", "line_number": -1 } }, @@ -965,13 +965,13 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.10" ], - "name": "context_object_name", - "value": "'latest'", + "name": "__context__", + "value": "", "line_number": -1 } }, @@ -980,13 +980,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "1.10" ], - "name": "context_object_name", - "value": "None", + "name": "__delattr__", + "value": "", "line_number": -1 } }, @@ -995,13 +995,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "1.10" ], - "name": "context_object_name", - "value": "None", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -1010,13 +1010,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.10" ], - "name": "date_field", - "value": "None", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -1025,13 +1025,13 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.10" ], - "name": "date_list_period", - "value": "'day'", + "name": "__reduce__", + "value": "", "line_number": -1 } }, @@ -1040,13 +1040,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.10" ], - "name": "date_list_period", - "value": "'year'", + "name": "__repr__", + "value": "", "line_number": -1 } }, @@ -1055,13 +1055,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.10" ], - "name": "date_list_period", - "value": "'month'", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -1070,13 +1070,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.10" ], - "name": "day", - "value": "None", + "name": "__setstate__", + "value": "", "line_number": -1 } }, @@ -1085,13 +1085,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.10" ], - "name": "day_format", - "value": "'%d'", + "name": "__str__", + "value": "", "line_number": -1 } }, @@ -1105,8 +1105,8 @@ "Django", "1.10" ], - "name": "__delattr__", - "value": "", + "name": "__suppress_context__", + "value": "", "line_number": -1 } }, @@ -1115,13 +1115,13 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.10" ], - "name": "fields", - "value": "None", + "name": "__traceback__", + "value": "", "line_number": -1 } }, @@ -1130,13 +1130,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.10" ], - "name": "form_class", - "value": "None", + "name": "with_traceback", + "value": "", "line_number": -1 } }, @@ -1145,13 +1145,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "RedirectView", + "django.views.generic.base", "Django", "1.10" ], - "name": "__getattribute__", - "value": "", + "name": "pattern_name", + "value": "None", "line_number": -1 } }, @@ -1160,13 +1160,13 @@ "pk": null, "fields": { "klass": [ - "View", + "RedirectView", "django.views.generic.base", "Django", "1.10" ], - "name": "http_method_names", - "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "name": "permanent", + "value": "False", "line_number": -1 } }, @@ -1175,13 +1175,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "RedirectView", + "django.views.generic.base", "Django", "1.10" ], - "name": "__init__", - "value": "", + "name": "query_string", + "value": "False", "line_number": -1 } }, @@ -1190,13 +1190,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.10" ], - "name": "initial", - "value": "{}", + "name": "url", + "value": "None", "line_number": -1 } }, @@ -1205,12 +1205,12 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.10" ], - "name": "login_url", + "name": "content_type", "value": "None", "line_number": -1 } @@ -1220,14 +1220,14 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.10" ], - "name": "make_object_list", - "value": "False", - "line_number": -1 + "name": "response_class", + "value": "", + "line_number": 143 } }, { @@ -1235,12 +1235,12 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.10" ], - "name": "model", + "name": "template_engine", "value": "None", "line_number": -1 } @@ -1250,12 +1250,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.10" ], - "name": "model", + "name": "template_name", "value": "None", "line_number": -1 } @@ -1265,13 +1265,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.10" ], - "name": "month", - "value": "None", + "name": "http_method_names", + "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", "line_number": -1 } }, @@ -1280,13 +1280,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "ArchiveIndexView", "django.views.generic.dates", "Django", "1.10" ], - "name": "month_format", - "value": "'%b'", + "name": "template_name_suffix", + "value": "'_archive'", "line_number": -1 } }, @@ -1295,13 +1295,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.10" ], - "name": "ordering", - "value": "None", + "name": "context_object_name", + "value": "'latest'", "line_number": -1 } }, @@ -1310,13 +1310,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.10" ], - "name": "page_kwarg", - "value": "'page'", + "name": "allow_empty", + "value": "False", "line_number": -1 } }, @@ -1325,13 +1325,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.10" ], - "name": "paginate_by", - "value": "None", + "name": "date_list_period", + "value": "'year'", "line_number": -1 } }, @@ -1340,13 +1340,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "name": "paginate_orphans", - "value": "0", + "name": "date_list_period", + "value": "'day'", "line_number": -1 } }, @@ -1355,14 +1355,14 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "name": "paginator_class", - "value": "", - "line_number": 20 + "name": "date_list_period", + "value": "'month'", + "line_number": -1 } }, { @@ -1370,13 +1370,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "name": "pattern_name", - "value": "None", + "name": "make_object_list", + "value": "False", "line_number": -1 } }, @@ -1385,12 +1385,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "DateMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "permanent", + "name": "allow_future", "value": "False", "line_number": -1 } @@ -1400,13 +1400,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "DateMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "permission_denied_message", - "value": "''", + "name": "date_field", + "value": "None", "line_number": -1 } }, @@ -1415,13 +1415,13 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "DateMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "permission_required", - "value": "None", + "name": "uses_datetime_field", + "value": "", "line_number": -1 } }, @@ -1430,13 +1430,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "name": "pk_url_kwarg", - "value": "'pk'", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -1445,12 +1445,12 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "prefix", + "name": "day", "value": "None", "line_number": -1 } @@ -1460,13 +1460,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "query_pk_and_slug", - "value": "False", + "name": "day_format", + "value": "'%d'", "line_number": -1 } }, @@ -1475,13 +1475,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "name": "queryset", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_month'", "line_number": -1 } }, @@ -1490,12 +1490,12 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "queryset", + "name": "month", "value": "None", "line_number": -1 } @@ -1505,13 +1505,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MonthMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "query_string", - "value": "False", + "name": "month_format", + "value": "'%b'", "line_number": -1 } }, @@ -1520,13 +1520,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "name": "raise_exception", - "value": "False", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -1535,13 +1535,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "template_name_suffix", + "value": "'_archive_week'", "line_number": -1 } }, @@ -1550,13 +1550,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "WeekMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "__reduce__", - "value": "", + "name": "week", + "value": "None", "line_number": -1 } }, @@ -1565,13 +1565,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "WeekMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "__repr__", - "value": "", + "name": "week_format", + "value": "'%U'", "line_number": -1 } }, @@ -1580,14 +1580,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "name": "response_class", - "value": "", - "line_number": 143 + "name": "template_name_suffix", + "value": "'_archive_year'", + "line_number": -1 } }, { @@ -1595,13 +1595,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "YearMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "__setattr__", - "value": "", + "name": "year", + "value": "None", "line_number": -1 } }, @@ -1610,13 +1610,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "YearMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "__setstate__", - "value": "", + "name": "year_format", + "value": "'%Y'", "line_number": -1 } }, @@ -1630,8 +1630,8 @@ "Django", "1.10" ], - "name": "slug_field", - "value": "'slug'", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -1645,8 +1645,8 @@ "Django", "1.10" ], - "name": "slug_url_kwarg", - "value": "'slug'", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -1655,13 +1655,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.10" ], - "name": "__str__", - "value": "", + "name": "pk_url_kwarg", + "value": "'pk'", "line_number": -1 } }, @@ -1670,13 +1670,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.10" ], - "name": "success_url", - "value": "None", + "name": "query_pk_and_slug", + "value": "False", "line_number": -1 } }, @@ -1685,12 +1685,12 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.10" ], - "name": "success_url", + "name": "queryset", "value": "None", "line_number": -1 } @@ -1700,13 +1700,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.10" ], - "name": "__suppress_context__", - "value": "", + "name": "slug_field", + "value": "'slug'", "line_number": -1 } }, @@ -1715,13 +1715,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.10" ], - "name": "template_engine", - "value": "None", + "name": "slug_url_kwarg", + "value": "'slug'", "line_number": -1 } }, @@ -1730,12 +1730,12 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.10" ], - "name": "template_name", + "name": "template_name_field", "value": "None", "line_number": -1 } @@ -1750,8 +1750,8 @@ "Django", "1.10" ], - "name": "template_name_field", - "value": "None", + "name": "template_name_suffix", + "value": "'_detail'", "line_number": -1 } }, @@ -1760,7 +1760,7 @@ "pk": null, "fields": { "klass": [ - "UpdateView", + "CreateView", "django.views.generic.edit", "Django", "1.10" @@ -1775,13 +1775,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DeleteView", + "django.views.generic.edit", "Django", "1.10" ], "name": "template_name_suffix", - "value": "'_detail'", + "value": "'_confirm_delete'", "line_number": -1 } }, @@ -1790,13 +1790,13 @@ "pk": null, "fields": { "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "template_name_suffix", - "value": "'_archive_month'", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -1805,13 +1805,13 @@ "pk": null, "fields": { "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "template_name_suffix", - "value": "'_archive'", + "name": "form_class", + "value": "None", "line_number": -1 } }, @@ -1820,13 +1820,13 @@ "pk": null, "fields": { "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "initial", + "value": "{}", "line_number": -1 } }, @@ -1835,13 +1835,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "template_name_suffix", - "value": "'_list'", + "name": "prefix", + "value": "None", "line_number": -1 } }, @@ -1850,13 +1850,13 @@ "pk": null, "fields": { "klass": [ - "DeleteView", + "FormMixin", "django.views.generic.edit", "Django", "1.10" ], - "name": "template_name_suffix", - "value": "'_confirm_delete'", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -1865,13 +1865,13 @@ "pk": null, "fields": { "klass": [ - "CreateView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.10" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "fields", + "value": "None", "line_number": -1 } }, @@ -1880,13 +1880,13 @@ "pk": null, "fields": { "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.10" ], "name": "template_name_suffix", - "value": "'_archive_day'", + "value": "'_form'", "line_number": -1 } }, @@ -1895,13 +1895,13 @@ "pk": null, "fields": { "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "template_name_suffix", - "value": "'_archive_week'", + "name": "allow_empty", + "value": "True", "line_number": -1 } }, @@ -1910,13 +1910,13 @@ "pk": null, "fields": { "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "template_name_suffix", - "value": "'_archive_year'", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -1925,13 +1925,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "__traceback__", - "value": "", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -1940,12 +1940,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "url", + "name": "ordering", "value": "None", "line_number": -1 } @@ -1955,13 +1955,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "uses_datetime_field", - "value": "", + "name": "page_kwarg", + "value": "'page'", "line_number": -1 } }, @@ -1970,12 +1970,12 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "week", + "name": "paginate_by", "value": "None", "line_number": -1 } @@ -1985,13 +1985,13 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "week_format", - "value": "'%U'", + "name": "paginate_orphans", + "value": "0", "line_number": -1 } }, @@ -2000,14 +2000,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "with_traceback", - "value": "", - "line_number": -1 + "name": "paginator_class", + "value": "", + "line_number": 20 } }, { @@ -2015,12 +2015,12 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "year", + "name": "queryset", "value": "None", "line_number": -1 } @@ -2030,13 +2030,13 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "year_format", - "value": "'%Y'", + "name": "template_name_suffix", + "value": "'_list'", "line_number": -1 } }, @@ -2045,16 +2045,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], - "name": "_allowed_methods", - "docstring": "", - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "name": "get_login_url", + "docstring": "Override this method to override the login_url attribute.", + "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return force_text(login_url)\n", "kwargs": "self", - "line_number": 106 + "line_number": 19 } }, { @@ -2062,16 +2062,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], - "name": "as_view", - "docstring": "Main entry point for a request-response process.", - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "kwargs": "cls, **initkwargs", - "line_number": 46 + "name": "get_permission_denied_message", + "docstring": "Override this method to override the permission_denied_message attribute.", + "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "kwargs": "self", + "line_number": 31 } }, { @@ -2079,16 +2079,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], - "name": "delete", - "docstring": "", - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 212 + "name": "get_redirect_field_name", + "docstring": "Override this method to override the redirect_field_name attribute.", + "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", + "kwargs": "self", + "line_number": 37 } }, { @@ -2096,16 +2096,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], - "name": "delete", - "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 257 + "name": "handle_no_permission", + "docstring": "", + "code": "def handle_no_permission(self):\n if self.raise_exception:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "kwargs": "self", + "line_number": 43 } }, { @@ -2130,16 +2130,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", + "PermissionRequiredMixin", "django.contrib.auth.mixins", "Django", "1.10" ], "name": "dispatch", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super(UserPassesTestMixin, self).dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super(PermissionRequiredMixin, self).dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 112 + "line_number": 89 } }, { @@ -2152,11 +2152,11 @@ "Django", "1.10" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super(PermissionRequiredMixin, self).dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 89 + "name": "get_permission_required", + "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", + "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, six.string_types):\n perms = (self.permission_required, )\n else:\n perms = self.permission_required\n return perms\n", + "kwargs": "self", + "line_number": 66 } }, { @@ -2164,16 +2164,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 80 + "name": "has_permission", + "docstring": "Override this method to customize the way permissions are checked.", + "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "kwargs": "self", + "line_number": 82 } }, { @@ -2181,16 +2181,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], - "name": "form_invalid", - "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", - "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "kwargs": "self, form", - "line_number": 81 + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super(UserPassesTestMixin, self).dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 112 } }, { @@ -2198,16 +2198,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], - "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", - "kwargs": "self, form", - "line_number": 158 + "name": "get_test_func", + "docstring": "Override this method to use a different test_func method.", + "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", + "kwargs": "self", + "line_number": 106 } }, { @@ -2215,16 +2215,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 75 + "name": "test_func", + "docstring": "", + "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "kwargs": "self", + "line_number": 101 } }, { @@ -2232,16 +2232,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.10" ], - "name": "get", + "name": "get_context_data", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 338 + "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", + "kwargs": "self, **kwargs", + "line_number": 22 } }, { @@ -2249,16 +2249,16 @@ "pk": null, "fields": { "klass": [ - "BaseListView", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "1.10" ], - "name": "get", + "name": "delete", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\") % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 158 + "line_number": 212 } }, { @@ -2283,33 +2283,33 @@ "pk": null, "fields": { "klass": [ - "TemplateView", + "RedirectView", "django.views.generic.base", "Django", "1.10" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 154 - } -}, -{ + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", + "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n try:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n except NoReverseMatch:\n return None\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", + "kwargs": "self, *args, **kwargs", + "line_number": 168 + } +}, +{ "model": "cbv.method", "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.10" ], - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n return self.render_to_response(self.get_context_data())\n", + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 170 + "line_number": 203 } }, { @@ -2317,16 +2317,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.10" ], - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", + "name": "options", + "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 211 + "line_number": 209 } }, { @@ -2334,16 +2334,16 @@ "pk": null, "fields": { "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "1.10" ], - "name": "get", + "name": "patch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 114 + "line_number": 218 } }, { @@ -2351,16 +2351,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.10" ], - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 234 + "line_number": 206 } }, { @@ -2368,16 +2368,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "1.10" ], - "name": "get_allow_empty", - "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", - "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "kwargs": "self", - "line_number": 108 + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 215 } }, { @@ -2385,16 +2385,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.10" ], - "name": "get_allow_future", - "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", - "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", + "name": "get_template_names", + "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", "kwargs": "self", - "line_number": 278 + "line_number": 136 } }, { @@ -2402,16 +2402,16 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", + "TemplateResponseMixin", "django.views.generic.base", "Django", "1.10" ], - "name": "get_context_data", - "docstring": "", - "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", - "kwargs": "self, **kwargs", - "line_number": 22 + "name": "render_to_response", + "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 119 } }, { @@ -2419,16 +2419,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "1.10" ], - "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", - "kwargs": "self, **kwargs", - "line_number": 96 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 154 } }, { @@ -2436,16 +2436,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.10" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the form into the context dict.\n \"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super(FormMixin, self).get_context_data(**kwargs)\n", - "kwargs": "self, **kwargs", - "line_number": 88 + "name": "_allowed_methods", + "docstring": "", + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "kwargs": "self", + "line_number": 106 } }, { @@ -2453,16 +2453,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "1.10" ], - "name": "get_context_data", - "docstring": "Get the context for this view.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list', self.object_list)\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", - "kwargs": "self, **kwargs", - "line_number": 126 + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 46 } }, { @@ -2470,16 +2470,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "1.10" ], - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", - "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", - "kwargs": "self, obj", - "line_number": 85 + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 80 } }, { @@ -2487,16 +2487,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "1.10" ], - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", - "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", - "kwargs": "self, object_list", - "line_number": 115 + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 90 } }, { @@ -2504,16 +2504,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.10" ], - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", - "kwargs": "self, date", - "line_number": 186 + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", + "kwargs": "self, **kwargs", + "line_number": 36 } }, { @@ -2521,16 +2521,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.10" ], - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", - "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", - "kwargs": "self, date", - "line_number": 130 + "name": "options", + "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 97 } }, { @@ -2538,16 +2538,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "BaseArchiveIndexView", "django.views.generic.dates", "Django", "1.10" ], - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "kwargs": "self, date", - "line_number": 242 + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", + "kwargs": "self", + "line_number": 420 } }, { @@ -2555,16 +2555,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.10" ], - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", - "kwargs": "self, date", - "line_number": 71 + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 644 } }, { @@ -2572,16 +2572,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.10" ], - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "kwargs": "self, date", - "line_number": 596 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 338 } }, { @@ -2589,16 +2589,16 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.10" ], "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", + "docstring": "Obtain the list of dates and items.", + "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", "kwargs": "self", - "line_number": 420 + "line_number": 345 } }, { @@ -2606,16 +2606,16 @@ "pk": null, "fields": { "klass": [ - "BaseWeekArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", - "kwargs": "self", - "line_number": 538 + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", + "kwargs": "self, **lookup", + "line_number": 358 } }, { @@ -2623,33 +2623,33 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", - "kwargs": "self", - "line_number": 447 - } -}, -{ + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", + "kwargs": "self, queryset, date_type=None, ordering='ASC'", + "line_number": 390 + } +}, +{ "model": "cbv.method", "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", + "name": "get_date_list_period", + "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", + "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", "kwargs": "self", - "line_number": 582 + "line_number": 384 } }, { @@ -2657,16 +2657,50 @@ "pk": null, "fields": { "klass": [ - "BaseTodayArchiveView", + "BaseDateListView", + "django.views.generic.dates", + "Django", + "1.10" + ], + "name": "get_ordering", + "docstring": "Returns the field or fields to use for ordering the queryset; uses the\ndate field by default.", + "code": "def get_ordering(self):\n \"\"\"\n Returns the field or fields to use for ordering the queryset; uses the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", + "kwargs": "self", + "line_number": 351 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "BaseDayArchiveView", + "django.views.generic.dates", + "Django", + "1.10" + ], + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 596 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.10" ], "name": "get_dated_items", "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", "kwargs": "self", - "line_number": 625 + "line_number": 582 } }, { @@ -2691,16 +2725,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "BaseTodayArchiveView", "django.views.generic.dates", "Django", "1.10" ], "name": "get_dated_items", - "docstring": "Obtain the list of dates and items.", - "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", "kwargs": "self", - "line_number": 345 + "line_number": 625 } }, { @@ -2708,16 +2742,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", - "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", - "kwargs": "self, **lookup", - "line_number": 358 + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", + "kwargs": "self", + "line_number": 538 } }, { @@ -2725,16 +2759,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", - "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", "kwargs": "self", - "line_number": 270 + "line_number": 447 } }, { @@ -2742,16 +2776,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", - "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", - "kwargs": "self, queryset, date_type=None, ordering='ASC'", - "line_number": 390 + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", + "kwargs": "self", + "line_number": 477 } }, { @@ -2759,16 +2793,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "DateMixin", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_date_list_period", - "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", - "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", + "name": "get_allow_future", + "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", "kwargs": "self", - "line_number": 384 + "line_number": 278 } }, { @@ -2776,16 +2810,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_day", - "docstring": "Return the day for which this view should display data.", - "code": "def get_day(self):\n \"\"\"\n Return the day for which this view should display data.\n \"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", "kwargs": "self", - "line_number": 151 + "line_number": 270 } }, { @@ -2793,16 +2827,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", - "kwargs": "self", - "line_number": 144 + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", + "kwargs": "self, value", + "line_number": 298 } }, { @@ -2810,16 +2844,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "get_form", - "docstring": "Returns an instance of the form to be used in this view.", - "code": "def get_form(self, form_class=None):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", - "kwargs": "self, form_class=None", - "line_number": 39 + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", + "kwargs": "self, date", + "line_number": 311 } }, { @@ -2827,16 +2861,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "get_form_class", - "docstring": "Returns the form class to use in this view", - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", - "kwargs": "self", - "line_number": 33 + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", + "kwargs": "self, date", + "line_number": 186 } }, { @@ -2844,16 +2878,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "get_form_class", - "docstring": "Returns the form class to use in this view.", - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "name": "get_day", + "docstring": "Return the day for which this view should display data.", + "code": "def get_day(self):\n \"\"\"\n Return the day for which this view should display data.\n \"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", "kwargs": "self", - "line_number": 103 + "line_number": 151 } }, { @@ -2861,16 +2895,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", "kwargs": "self", - "line_number": 47 + "line_number": 144 } }, { @@ -2878,16 +2912,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", - "kwargs": "self", - "line_number": 134 + "name": "_get_next_day", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", + "kwargs": "self, date", + "line_number": 178 } }, { @@ -2895,16 +2929,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "get_initial", - "docstring": "Returns the initial data to use for forms on this view.", - "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", - "kwargs": "self", - "line_number": 21 + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "kwargs": "self, date", + "line_number": 166 } }, { @@ -2912,16 +2946,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "DayMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "get_login_url", - "docstring": "Override this method to override the login_url attribute.", - "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return force_text(login_url)\n", - "kwargs": "self", - "line_number": 19 + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "kwargs": "self, date", + "line_number": 172 } }, { @@ -2929,16 +2963,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", + "MonthMixin", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", - "kwargs": "self", - "line_number": 477 + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", + "kwargs": "self, date", + "line_number": 130 } }, { @@ -2980,16 +3014,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.10" ], - "name": "_get_next_day", + "name": "_get_next_month", "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n return date.replace(year=date.year + 1, month=1, day=1)\n else:\n return date.replace(month=date.month + 1, day=1)\n", "kwargs": "self, date", - "line_number": 178 + "line_number": 119 } }, { @@ -2997,16 +3031,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_next_day", - "docstring": "Get the next valid day.", - "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", "kwargs": "self, date", - "line_number": 166 + "line_number": 107 } }, { @@ -3019,11 +3053,11 @@ "Django", "1.10" ], - "name": "_get_next_month", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n return date.replace(year=date.year + 1, month=1, day=1)\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", "kwargs": "self, date", - "line_number": 119 + "line_number": 113 } }, { @@ -3031,16 +3065,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_next_month", - "docstring": "Get the next valid month.", - "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", "kwargs": "self, date", - "line_number": 107 + "line_number": 242 } }, { @@ -3082,16 +3116,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.10" ], - "name": "_get_next_year", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date.replace(year=date.year + 1, month=1, day=1)\n", + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", "kwargs": "self, date", - "line_number": 63 + "line_number": 228 } }, { @@ -3099,16 +3133,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_next_year", - "docstring": "Get the next valid year.", - "code": "def get_next_year(self, date):\n \"\"\"\n Get the next valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", - "kwargs": "self, date", - "line_number": 51 + "name": "get_week", + "docstring": "Return the week for which this view should display data", + "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", + "kwargs": "self", + "line_number": 207 } }, { @@ -3116,16 +3150,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateDetailView", + "WeekMixin", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_object", - "docstring": "Get the object this request displays.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", - "kwargs": "self, queryset=None", - "line_number": 644 + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", + "kwargs": "self, date", + "line_number": 248 } }, { @@ -3133,16 +3167,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WeekMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "get_object", - "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "kwargs": "self, queryset=None", - "line_number": 22 + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "kwargs": "self", + "line_number": 200 } }, { @@ -3150,16 +3184,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "YearMixin", "django.views.generic.dates", "Django", "1.10" ], - "name": "get_ordering", - "docstring": "Returns the field or fields to use for ordering the queryset; uses the\ndate field by default.", - "code": "def get_ordering(self):\n \"\"\"\n Returns the field or fields to use for ordering the queryset; uses the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", - "kwargs": "self", - "line_number": 351 + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", + "kwargs": "self, date", + "line_number": 71 } }, { @@ -3167,16 +3201,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset.", - "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset.\n \"\"\"\n return self.ordering\n", - "kwargs": "self", - "line_number": 55 + "name": "_get_next_year", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date.replace(year=date.year + 1, month=1, day=1)\n", + "kwargs": "self, date", + "line_number": 63 } }, { @@ -3184,16 +3218,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "kwargs": "self, queryset", - "line_number": 86 + "name": "get_next_year", + "docstring": "Get the next valid year.", + "code": "def get_next_year(self, date):\n \"\"\"\n Get the next valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", + "kwargs": "self, date", + "line_number": 51 } }, { @@ -3201,16 +3235,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "get_paginate_orphans", - "docstring": "Returns the maximum number of orphans extend the last page by when\npaginating.", - "code": "def get_paginate_orphans(self):\n \"\"\"\n Returns the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", - "kwargs": "self", - "line_number": 101 + "name": "get_previous_year", + "docstring": "Get the previous valid year.", + "code": "def get_previous_year(self, date):\n \"\"\"\n Get the previous valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", + "kwargs": "self, date", + "line_number": 57 } }, { @@ -3218,16 +3252,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", - "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", - "line_number": 92 + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "kwargs": "self", + "line_number": 36 } }, { @@ -3235,16 +3269,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "YearMixin", + "django.views.generic.dates", "Django", "1.10" ], - "name": "get_permission_denied_message", - "docstring": "Override this method to override the permission_denied_message attribute.", - "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", "kwargs": "self", - "line_number": 31 + "line_number": 29 } }, { @@ -3252,16 +3286,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.10" ], - "name": "get_permission_required", - "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", - "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, six.string_types):\n perms = (self.permission_required, )\n else:\n perms = self.permission_required\n return perms\n", - "kwargs": "self", - "line_number": 66 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 114 } }, { @@ -3269,16 +3303,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.10" ], - "name": "get_prefix", - "docstring": "Returns the prefix to use for forms on this view", - "code": "def get_prefix(self):\n \"\"\"\n Returns the prefix to use for forms on this view\n \"\"\"\n return self.prefix\n", - "kwargs": "self", - "line_number": 27 + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 96 } }, { @@ -3286,16 +3320,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.10" ], - "name": "get_previous_day", - "docstring": "Get the previous valid day.", - "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", - "kwargs": "self, date", - "line_number": 172 + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 85 } }, { @@ -3303,16 +3337,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.10" ], - "name": "get_previous_month", - "docstring": "Get the previous valid month.", - "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", - "kwargs": "self, date", - "line_number": 113 + "name": "get_object", + "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 22 } }, { @@ -3320,16 +3354,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.10" ], - "name": "get_previous_week", - "docstring": "Get the previous valid week.", - "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", - "kwargs": "self, date", - "line_number": 228 + "name": "get_queryset", + "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nNote that this method is called by the default implementation of\n`get_object` and may not be called if `get_object` is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n Note that this method is called by the default implementation of\n `get_object` and may not be called if `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", + "kwargs": "self", + "line_number": 59 } }, { @@ -3337,16 +3371,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.10" ], - "name": "get_previous_year", - "docstring": "Get the previous valid year.", - "code": "def get_previous_year(self, date):\n \"\"\"\n Get the previous valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", - "kwargs": "self, date", - "line_number": 57 + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", + "kwargs": "self", + "line_number": 79 } }, { @@ -3354,16 +3388,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.10" ], - "name": "get_queryset", - "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", - "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, six.string_types):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", "kwargs": "self", - "line_number": 26 + "line_number": 124 } }, { @@ -3371,16 +3405,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.10" ], - "name": "get_queryset", - "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nNote that this method is called by the default implementation of\n`get_object` and may not be called if `get_object` is overridden.", - "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n Note that this method is called by the default implementation of\n `get_object` and may not be called if `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", - "kwargs": "self", - "line_number": 59 + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 211 } }, { @@ -3388,16 +3422,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.10" ], - "name": "get_redirect_field_name", - "docstring": "Override this method to override the redirect_field_name attribute.", - "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", - "kwargs": "self", - "line_number": 37 + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 215 } }, { @@ -3405,16 +3439,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.10" ], - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", - "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n try:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n except NoReverseMatch:\n return None\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", - "kwargs": "self, *args, **kwargs", - "line_number": 168 + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 234 } }, { @@ -3422,16 +3456,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.10" ], - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", - "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", - "kwargs": "self", - "line_number": 79 + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 238 } }, { @@ -3444,11 +3478,11 @@ "Django", "1.10" ], - "name": "get_success_url", - "docstring": "", - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", - "kwargs": "self", - "line_number": 271 + "name": "delete", + "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 257 } }, { @@ -3456,16 +3490,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", + "DeletionMixin", "django.views.generic.edit", "Django", "1.10" ], "name": "get_success_url", - "docstring": "Returns the supplied success URL.", - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", "kwargs": "self", - "line_number": 63 + "line_number": 271 } }, { @@ -3473,50 +3507,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", + "DeletionMixin", "django.views.generic.edit", "Django", "1.10" ], - "name": "get_success_url", - "docstring": "Returns the supplied URL.", - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", - "kwargs": "self", - "line_number": 143 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", - "Django", - "1.10" - ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", - "kwargs": "self", - "line_number": 184 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", - "Django", - "1.10" - ], - "name": "get_template_names", - "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "kwargs": "self", - "line_number": 136 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 268 } }, { @@ -3524,16 +3524,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", - "kwargs": "self", - "line_number": 124 + "name": "form_invalid", + "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", + "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 81 } }, { @@ -3541,16 +3541,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "get_test_func", - "docstring": "Override this method to use a different test_func method.", - "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", - "kwargs": "self", - "line_number": 106 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 75 } }, { @@ -3558,16 +3558,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "get_week", - "docstring": "Return the week for which this view should display data", - "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", - "kwargs": "self", - "line_number": 207 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the form into the context dict.\n \"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super(FormMixin, self).get_context_data(**kwargs)\n", + "kwargs": "self, **kwargs", + "line_number": 88 } }, { @@ -3575,16 +3575,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "kwargs": "self, date", - "line_number": 248 + "name": "get_form", + "docstring": "Returns an instance of the form to be used in this view.", + "code": "def get_form(self, form_class=None):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class=None", + "line_number": 39 } }, { @@ -3592,16 +3592,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "name": "get_form_class", + "docstring": "Returns the form class to use in this view", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", "kwargs": "self", - "line_number": 200 + "line_number": 33 } }, { @@ -3609,16 +3609,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "get_year", - "docstring": "Return the year for which this view should display data.", - "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", "kwargs": "self", - "line_number": 36 + "line_number": 47 } }, { @@ -3626,16 +3626,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", + "name": "get_initial", + "docstring": "Returns the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", "kwargs": "self", - "line_number": 29 + "line_number": 21 } }, { @@ -3643,16 +3643,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "handle_no_permission", - "docstring": "", - "code": "def handle_no_permission(self):\n if self.raise_exception:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "name": "get_prefix", + "docstring": "Returns the prefix to use for forms on this view", + "code": "def get_prefix(self):\n \"\"\"\n Returns the prefix to use for forms on this view\n \"\"\"\n return self.prefix\n", "kwargs": "self", - "line_number": 43 + "line_number": 27 } }, { @@ -3660,16 +3660,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "has_permission", - "docstring": "Override this method to customize the way permissions are checked.", - "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "name": "get_success_url", + "docstring": "Returns the supplied success URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", "kwargs": "self", - "line_number": 82 + "line_number": 63 } }, { @@ -3677,16 +3677,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "head", - "docstring": "", - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 203 + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", + "kwargs": "self, form", + "line_number": 158 } }, { @@ -3694,16 +3694,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "http_method_not_allowed", - "docstring": "", - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 90 + "name": "get_form_class", + "docstring": "Returns the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "kwargs": "self", + "line_number": 103 } }, { @@ -3711,16 +3711,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", - "kwargs": "self, **kwargs", - "line_number": 36 + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 134 } }, { @@ -3728,16 +3728,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", - "kwargs": "self, value", - "line_number": 298 + "name": "get_success_url", + "docstring": "Returns the supplied URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 143 } }, { @@ -3745,16 +3745,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", - "Django", - "1.10" - ], - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "kwargs": "self, date", - "line_number": 311 + "ProcessFormView", + "django.views.generic.edit", + "Django", + "1.10" + ], + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n return self.render_to_response(self.get_context_data())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 170 } }, { @@ -3762,16 +3762,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.10" ], - "name": "options", - "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 209 + "line_number": 176 } }, { @@ -3779,16 +3779,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.10" ], - "name": "options", - "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 97 + "name": "put", + "docstring": "", + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 189 } }, { @@ -3796,16 +3796,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", + "BaseListView", "django.views.generic.list", "Django", "1.10" ], - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", - "kwargs": "self, queryset, page_size", - "line_number": 61 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\") % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 158 } }, { @@ -3813,16 +3813,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "patch", - "docstring": "", - "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 218 + "name": "get_allow_empty", + "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 108 } }, { @@ -3830,16 +3830,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 215 + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list', self.object_list)\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 126 } }, { @@ -3847,16 +3847,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 238 + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 115 } }, { @@ -3864,16 +3864,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 268 + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset.", + "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset.\n \"\"\"\n return self.ordering\n", + "kwargs": "self", + "line_number": 55 } }, { @@ -3881,16 +3881,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 206 + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 86 } }, { @@ -3898,16 +3898,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 176 + "name": "get_paginate_orphans", + "docstring": "Returns the maximum number of orphans extend the last page by when\npaginating.", + "code": "def get_paginate_orphans(self):\n \"\"\"\n Returns the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "kwargs": "self", + "line_number": 101 } }, { @@ -3915,16 +3915,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "put", - "docstring": "", - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 189 + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", + "line_number": 92 } }, { @@ -3932,16 +3932,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "put", - "docstring": "", - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 215 + "name": "get_queryset", + "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", + "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, six.string_types):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "kwargs": "self", + "line_number": 26 } }, { @@ -3949,16 +3949,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "render_to_response", - "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", - "kwargs": "self, context, **response_kwargs", - "line_number": 119 + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 61 } }, { @@ -3966,16 +3966,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.10" ], - "name": "test_func", - "docstring": "", - "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", "kwargs": "self", - "line_number": 101 + "line_number": 184 } }, { @@ -3983,14 +3983,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], @@ -4002,14 +4002,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], @@ -4021,14 +4021,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "1.10" ], @@ -4046,8 +4046,8 @@ "1.10" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.10" ], @@ -4059,13 +4059,13 @@ "pk": null, "fields": { "parent": [ - "View", + "TemplateResponseMixin", "django.views.generic.base", "Django", "1.10" ], "child": [ - "RedirectView", + "TemplateView", "django.views.generic.base", "Django", "1.10" @@ -4078,18 +4078,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", + "ContextMixin", "django.views.generic.base", "Django", "1.10" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "TemplateView", + "django.views.generic.base", "Django", "1.10" ], - "order": 0 + "order": 1 } }, { @@ -4097,18 +4097,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", + "View", "django.views.generic.base", "Django", "1.10" ], "child": [ - "FormView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "1.10" ], - "order": 0 + "order": 2 } }, { @@ -4116,14 +4116,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.10" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.10" ], @@ -4135,18 +4135,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "TemplateView", - "django.views.generic.base", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 1 } }, { @@ -4179,7 +4179,7 @@ "1.10" ], "child": [ - "BaseYearArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.10" @@ -4192,18 +4192,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.10" ], "child": [ - "BaseWeekArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 1 } }, { @@ -4211,18 +4211,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.10" ], "child": [ - "BaseMonthArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 2 } }, { @@ -4230,18 +4230,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.10" ], "child": [ - "BaseDayArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 3 } }, { @@ -4249,8 +4249,8 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.10" ], @@ -4260,7 +4260,7 @@ "Django", "1.10" ], - "order": 0 + "order": 4 } }, { @@ -4268,13 +4268,13 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], "child": [ - "BaseTodayArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.10" @@ -4287,18 +4287,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DateMixin", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 1 } }, { @@ -4306,18 +4306,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "1.10" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 2 } }, { @@ -4325,14 +4325,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.10" ], @@ -4344,18 +4344,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "CreateView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 1 } }, { @@ -4363,18 +4363,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "DetailView", - "django.views.generic.detail", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 2 } }, { @@ -4382,18 +4382,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "DateDetailView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 3 } }, { @@ -4401,14 +4401,14 @@ "pk": null, "fields": { "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.10" ], @@ -4420,18 +4420,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 1 } }, { @@ -4439,18 +4439,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 2 } }, { @@ -4458,14 +4458,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.10" ], @@ -4477,14 +4477,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.10" ], @@ -4496,18 +4496,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 1 } }, { @@ -4515,18 +4515,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "BaseDateListView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 2 } }, { @@ -4534,14 +4534,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.10" ], @@ -4553,18 +4553,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "YearArchiveView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 1 } }, { @@ -4572,13 +4572,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.10" ], "child": [ - "WeekArchiveView", + "DateDetailView", "django.views.generic.dates", "Django", "1.10" @@ -4591,18 +4591,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "TodayArchiveView", + "DateDetailView", "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 1 } }, { @@ -4616,7 +4616,7 @@ "1.10" ], "child": [ - "MonthArchiveView", + "DayArchiveView", "django.views.generic.dates", "Django", "1.10" @@ -4629,8 +4629,8 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.10" ], @@ -4640,7 +4640,7 @@ "Django", "1.10" ], - "order": 0 + "order": 1 } }, { @@ -4654,7 +4654,7 @@ "1.10" ], "child": [ - "ArchiveIndexView", + "MonthArchiveView", "django.views.generic.dates", "Django", "1.10" @@ -4667,18 +4667,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 1 } }, { @@ -4686,14 +4686,14 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.10" ], "child": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.10" ], @@ -4705,18 +4705,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.10" ], - "order": 0 + "order": 1 } }, { @@ -4724,18 +4724,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.10" ], "child": [ - "BaseDayArchiveView", + "WeekArchiveView", "django.views.generic.dates", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -4743,14 +4743,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "BaseListView", - "django.views.generic.list", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.10" ], @@ -4762,18 +4762,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.10" ], "child": [ - "BaseDateDetailView", + "YearArchiveView", "django.views.generic.dates", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -4781,14 +4781,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.10" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.10" ], @@ -4800,18 +4800,18 @@ "pk": null, "fields": { "parent": [ - "BaseCreateView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.10" ], "child": [ - "CreateView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -4819,14 +4819,14 @@ "pk": null, "fields": { "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.10" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.10" ], @@ -4838,18 +4838,18 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.10" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -4857,14 +4857,14 @@ "pk": null, "fields": { "parent": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.10" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "DetailView", + "django.views.generic.detail", "Django", "1.10" ], @@ -4876,18 +4876,18 @@ "pk": null, "fields": { "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.10" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -4895,18 +4895,18 @@ "pk": null, "fields": { "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.10" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -4914,18 +4914,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.10" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -4933,14 +4933,14 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.10" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.10" ], @@ -4952,18 +4952,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.10" ], "child": [ - "TemplateView", - "django.views.generic.base", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -4990,18 +4990,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], "child": [ - "DetailView", - "django.views.generic.detail", + "BaseFormView", + "django.views.generic.edit", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -5009,13 +5009,13 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.10" ], "child": [ - "ModelFormMixin", + "BaseFormView", "django.views.generic.edit", "Django", "1.10" @@ -5028,18 +5028,18 @@ "pk": null, "fields": { "parent": [ - "BaseFormView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.10" ], "child": [ - "FormView", + "BaseUpdateView", "django.views.generic.edit", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -5047,14 +5047,14 @@ "pk": null, "fields": { "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.10" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.10" ], @@ -5066,18 +5066,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.10" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -5085,13 +5085,13 @@ "pk": null, "fields": { "parent": [ - "BaseUpdateView", + "BaseCreateView", "django.views.generic.edit", "Django", "1.10" ], "child": [ - "UpdateView", + "CreateView", "django.views.generic.edit", "Django", "1.10" @@ -5104,18 +5104,18 @@ "pk": null, "fields": { "parent": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.10" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -5123,14 +5123,14 @@ "pk": null, "fields": { "parent": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.10" ], "child": [ - "WeekArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.10" ], @@ -5142,18 +5142,18 @@ "pk": null, "fields": { "parent": [ - "WeekMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.10" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -5161,18 +5161,18 @@ "pk": null, "fields": { "parent": [ - "BaseListView", - "django.views.generic.list", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.10" ], "child": [ - "ListView", - "django.views.generic.list", + "FormView", + "django.views.generic.edit", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -5180,13 +5180,13 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", + "BaseFormView", "django.views.generic.edit", "Django", "1.10" ], "child": [ - "BaseUpdateView", + "FormView", "django.views.generic.edit", "Django", "1.10" @@ -5199,18 +5199,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", + "FormMixin", "django.views.generic.edit", "Django", "1.10" ], "child": [ - "BaseFormView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.10" ], - "order": 1 + "order": 0 } }, { @@ -5218,13 +5218,13 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.10" ], "child": [ - "BaseCreateView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.10" @@ -5243,12 +5243,12 @@ "1.10" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.10" ], - "order": 2 + "order": 0 } }, { @@ -5256,18 +5256,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.10" ], "child": [ - "TemplateView", - "django.views.generic.base", + "UpdateView", + "django.views.generic.edit", "Django", "1.10" ], - "order": 2 + "order": 0 } }, { @@ -5275,18 +5275,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.10" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.10" ], - "order": 2 + "order": 1 } }, { @@ -5294,18 +5294,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.10" ], - "order": 2 + "order": 0 } }, { @@ -5313,18 +5313,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.10" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.10" ], - "order": 2 + "order": 1 } }, { @@ -5332,18 +5332,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.10" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.10" ], - "order": 2 + "order": 0 } }, { @@ -5351,18 +5351,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.10" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.10" ], - "order": 3 + "order": 1 } }, { @@ -5370,18 +5370,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.10" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.10" ], - "order": 3 + "order": 0 } }, { @@ -5389,18 +5389,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.10" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.10" ], - "order": 4 + "order": 0 } } ] diff --git a/cbv/fixtures/1.11.json b/cbv/fixtures/1.11.json index 6b789c2a..9d7933f8 100644 --- a/cbv/fixtures/1.11.json +++ b/cbv/fixtures/1.11.json @@ -16,9 +16,9 @@ "Django", "1.11" ], - "name": "django.views.generic", + "name": "django.contrib.auth.mixins", "docstring": "", - "filename": "/django/views/generic/__init__.py" + "filename": "/django/contrib/auth/mixins.py" } }, { @@ -28,9 +28,9 @@ "Django", "1.11" ], - "name": "django.views.generic.base", + "name": "django.contrib.auth.views", "docstring": "", - "filename": "/django/views/generic/base.py" + "filename": "/django/contrib/auth/views.py" } }, { @@ -40,9 +40,9 @@ "Django", "1.11" ], - "name": "django.views.generic.dates", + "name": "django.views.generic", "docstring": "", - "filename": "/django/views/generic/dates.py" + "filename": "/django/views/generic/__init__.py" } }, { @@ -52,9 +52,9 @@ "Django", "1.11" ], - "name": "django.views.generic.detail", + "name": "django.views.generic.base", "docstring": "", - "filename": "/django/views/generic/detail.py" + "filename": "/django/views/generic/base.py" } }, { @@ -64,9 +64,9 @@ "Django", "1.11" ], - "name": "django.views.generic.edit", + "name": "django.views.generic.dates", "docstring": "", - "filename": "/django/views/generic/edit.py" + "filename": "/django/views/generic/dates.py" } }, { @@ -76,9 +76,9 @@ "Django", "1.11" ], - "name": "django.views.generic.list", + "name": "django.views.generic.detail", "docstring": "", - "filename": "/django/views/generic/list.py" + "filename": "/django/views/generic/detail.py" } }, { @@ -88,9 +88,9 @@ "Django", "1.11" ], - "name": "django.contrib.auth.views", + "name": "django.views.generic.edit", "docstring": "", - "filename": "/django/contrib/auth/views.py" + "filename": "/django/views/generic/edit.py" } }, { @@ -100,9 +100,9 @@ "Django", "1.11" ], - "name": "django.contrib.auth.mixins", + "name": "django.views.generic.list", "docstring": "", - "filename": "/django/contrib/auth/mixins.py" + "filename": "/django/views/generic/list.py" } }, { @@ -1010,13 +1010,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], - "name": "allow_empty", - "value": "True", + "name": "login_url", + "value": "None", "line_number": -1 } }, @@ -1025,13 +1025,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], - "name": "allow_empty", - "value": "False", + "name": "permission_denied_message", + "value": "''", "line_number": -1 } }, @@ -1040,12 +1040,12 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], - "name": "allow_future", + "name": "raise_exception", "value": "False", "line_number": -1 } @@ -1055,13 +1055,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], - "name": "args", - "value": "", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1070,12 +1070,12 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], - "name": "authentication_form", + "name": "permission_required", "value": "None", "line_number": -1 } @@ -1085,13 +1085,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "__cause__", - "value": "", + "name": "authentication_form", + "value": "None", "line_number": -1 } }, @@ -1100,12 +1100,12 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "content_type", + "name": "extra_context", "value": "None", "line_number": -1 } @@ -1115,14 +1115,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "__context__", - "value": "", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 145 } }, { @@ -1130,13 +1130,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "LoginView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "context_object_name", - "value": "None", + "name": "redirect_authenticated_user", + "value": "False", "line_number": -1 } }, @@ -1145,13 +1145,13 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "context_object_name", - "value": "'latest'", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1160,13 +1160,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "LoginView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "context_object_name", - "value": "None", + "name": "template_name", + "value": "'registration/login.html'", "line_number": -1 } }, @@ -1175,12 +1175,12 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "date_field", + "name": "extra_context", "value": "None", "line_number": -1 } @@ -1190,13 +1190,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "date_list_period", - "value": "'year'", + "name": "next_page", + "value": "None", "line_number": -1 } }, @@ -1205,13 +1205,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "date_list_period", - "value": "'month'", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1220,13 +1220,13 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "date_list_period", - "value": "'day'", + "name": "template_name", + "value": "'registration/logged_out.html'", "line_number": -1 } }, @@ -1235,13 +1235,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "day", - "value": "None", + "name": "template_name", + "value": "'registration/password_change_done.html'", "line_number": -1 } }, @@ -1250,13 +1250,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "day_format", - "value": "'%d'", + "name": "title", + "value": "ugettext_lazy('Password change successful')", "line_number": -1 } }, @@ -1265,14 +1265,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "__delattr__", - "value": "", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 337 } }, { @@ -1280,13 +1280,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordChangeView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "email_template_name", - "value": "'registration/password_reset_email.html'", + "name": "success_url", + "value": "reverse_lazy('password_change_done')", "line_number": -1 } }, @@ -1295,13 +1295,13 @@ "pk": null, "fields": { "klass": [ - "PasswordContextMixin", + "PasswordChangeView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "extra_context", - "value": "None", + "name": "template_name", + "value": "'registration/password_change_form.html'", "line_number": -1 } }, @@ -1310,13 +1310,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordChangeView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "extra_context", - "value": "None", + "name": "title", + "value": "ugettext_lazy('Password change')", "line_number": -1 } }, @@ -1325,7 +1325,7 @@ "pk": null, "fields": { "klass": [ - "LogoutView", + "PasswordContextMixin", "django.contrib.auth.views", "Django", "1.11" @@ -1340,13 +1340,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetCompleteView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "extra_email_context", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_complete.html'", "line_number": -1 } }, @@ -1355,13 +1355,13 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "fields", - "value": "None", + "name": "title", + "value": "ugettext_lazy('Password reset complete')", "line_number": -1 } }, @@ -1385,13 +1385,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "form_class", - "value": "None", + "name": "post_reset_login", + "value": "False", "line_number": -1 } }, @@ -1400,14 +1400,14 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "form_class", - "value": "", - "line_number": 337 + "name": "post_reset_login_backend", + "value": "None", + "line_number": -1 } }, { @@ -1415,14 +1415,14 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "form_class", - "value": "", - "line_number": 145 + "name": "success_url", + "value": "reverse_lazy('password_reset_complete')", + "line_number": -1 } }, { @@ -1430,14 +1430,14 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "form_class", - "value": "", - "line_number": 225 + "name": "template_name", + "value": "'registration/password_reset_confirm.html'", + "line_number": -1 } }, { @@ -1445,13 +1445,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "from_email", - "value": "None", + "name": "title", + "value": "ugettext_lazy('Enter new password')", "line_number": -1 } }, @@ -1460,13 +1460,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "__getattribute__", - "value": "", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1475,13 +1475,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetDoneView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "html_email_template_name", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_done.html'", "line_number": -1 } }, @@ -1490,13 +1490,13 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "http_method_names", - "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "name": "title", + "value": "ugettext_lazy('Password reset sent')", "line_number": -1 } }, @@ -1505,13 +1505,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "__init__", - "value": "", + "name": "email_template_name", + "value": "'registration/password_reset_email.html'", "line_number": -1 } }, @@ -1520,13 +1520,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "initial", - "value": "{}", + "name": "extra_email_context", + "value": "None", "line_number": -1 } }, @@ -1535,14 +1535,14 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "PasswordResetView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "login_url", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 225 } }, { @@ -1550,13 +1550,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "make_object_list", - "value": "False", + "name": "from_email", + "value": "None", "line_number": -1 } }, @@ -1565,12 +1565,12 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "model", + "name": "html_email_template_name", "value": "None", "line_number": -1 } @@ -1580,13 +1580,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "model", - "value": "None", + "name": "subject_template_name", + "value": "'registration/password_reset_subject.txt'", "line_number": -1 } }, @@ -1595,13 +1595,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "month", - "value": "None", + "name": "success_url", + "value": "reverse_lazy('password_reset_done')", "line_number": -1 } }, @@ -1610,13 +1610,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "month_format", - "value": "'%b'", + "name": "template_name", + "value": "'registration/password_reset_form.html'", "line_number": -1 } }, @@ -1625,13 +1625,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", + "PasswordResetView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "next_page", - "value": "None", + "name": "title", + "value": "ugettext_lazy('Password reset')", "line_number": -1 } }, @@ -1640,13 +1640,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "ordering", - "value": "None", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1655,13 +1655,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "page_kwarg", - "value": "'page'", + "name": "success_url_allowed_hosts", + "value": "set()", "line_number": -1 } }, @@ -1670,13 +1670,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "paginate_by", - "value": "None", + "name": "args", + "value": "", "line_number": -1 } }, @@ -1685,13 +1685,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "paginate_orphans", - "value": "0", + "name": "__cause__", + "value": "", "line_number": -1 } }, @@ -1700,14 +1700,14 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "paginator_class", - "value": "", - "line_number": 26 + "name": "__context__", + "value": "", + "line_number": -1 } }, { @@ -1715,13 +1715,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "pattern_name", - "value": "None", + "name": "__delattr__", + "value": "", "line_number": -1 } }, @@ -1730,13 +1730,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "permanent", - "value": "False", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -1745,13 +1745,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "permission_denied_message", - "value": "''", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -1760,13 +1760,13 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "permission_required", - "value": "None", + "name": "__reduce__", + "value": "", "line_number": -1 } }, @@ -1775,13 +1775,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "pk_url_kwarg", - "value": "'pk'", + "name": "__repr__", + "value": "", "line_number": -1 } }, @@ -1790,13 +1790,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "post_reset_login", - "value": "False", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -1805,13 +1805,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "post_reset_login_backend", - "value": "None", + "name": "__setstate__", + "value": "", "line_number": -1 } }, @@ -1820,13 +1820,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "prefix", - "value": "None", + "name": "__str__", + "value": "", "line_number": -1 } }, @@ -1835,13 +1835,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "query_pk_and_slug", - "value": "False", + "name": "__suppress_context__", + "value": "", "line_number": -1 } }, @@ -1850,13 +1850,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "queryset", - "value": "None", + "name": "__traceback__", + "value": "", "line_number": -1 } }, @@ -1865,13 +1865,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "1.11" ], - "name": "queryset", - "value": "None", + "name": "with_traceback", + "value": "", "line_number": -1 } }, @@ -1885,8 +1885,8 @@ "Django", "1.11" ], - "name": "query_string", - "value": "False", + "name": "pattern_name", + "value": "None", "line_number": -1 } }, @@ -1895,12 +1895,12 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "RedirectView", + "django.views.generic.base", "Django", "1.11" ], - "name": "raise_exception", + "name": "permanent", "value": "False", "line_number": -1 } @@ -1910,12 +1910,12 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "1.11" ], - "name": "redirect_authenticated_user", + "name": "query_string", "value": "False", "line_number": -1 } @@ -1925,13 +1925,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "RedirectView", + "django.views.generic.base", "Django", "1.11" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "url", + "value": "None", "line_number": -1 } }, @@ -1940,13 +1940,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.11" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "content_type", + "value": "None", "line_number": -1 } }, @@ -1955,14 +1955,14 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.11" ], - "name": "redirect_field_name", - "value": "'next'", - "line_number": -1 + "name": "response_class", + "value": "", + "line_number": 141 } }, { @@ -1970,13 +1970,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.11" ], - "name": "__reduce__", - "value": "", + "name": "template_engine", + "value": "None", "line_number": -1 } }, @@ -1985,13 +1985,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.11" ], - "name": "__repr__", - "value": "", + "name": "template_name", + "value": "None", "line_number": -1 } }, @@ -2000,14 +2000,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", + "View", "django.views.generic.base", "Django", "1.11" ], - "name": "response_class", - "value": "", - "line_number": 141 + "name": "http_method_names", + "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "line_number": -1 } }, { @@ -2015,13 +2015,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "__setattr__", - "value": "", + "name": "template_name_suffix", + "value": "'_archive'", "line_number": -1 } }, @@ -2030,13 +2030,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "__setstate__", - "value": "", + "name": "context_object_name", + "value": "'latest'", "line_number": -1 } }, @@ -2045,13 +2045,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "slug_field", - "value": "'slug'", + "name": "allow_empty", + "value": "False", "line_number": -1 } }, @@ -2060,13 +2060,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "slug_url_kwarg", - "value": "'slug'", + "name": "date_list_period", + "value": "'year'", "line_number": -1 } }, @@ -2075,13 +2075,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "__str__", - "value": "", + "name": "date_list_period", + "value": "'day'", "line_number": -1 } }, @@ -2090,13 +2090,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "subject_template_name", - "value": "'registration/password_reset_subject.txt'", + "name": "date_list_period", + "value": "'month'", "line_number": -1 } }, @@ -2105,13 +2105,13 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "success_url", - "value": "None", + "name": "make_object_list", + "value": "False", "line_number": -1 } }, @@ -2120,13 +2120,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_complete')", + "name": "allow_future", + "value": "False", "line_number": -1 } }, @@ -2135,13 +2135,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "success_url", - "value": "reverse_lazy('password_change_done')", + "name": "date_field", + "value": "None", "line_number": -1 } }, @@ -2150,13 +2150,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_done')", + "name": "uses_datetime_field", + "value": "", "line_number": -1 } }, @@ -2165,13 +2165,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "success_url", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2180,13 +2180,13 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "success_url_allowed_hosts", - "value": "set()", + "name": "day", + "value": "None", "line_number": -1 } }, @@ -2195,13 +2195,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "DayMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "__suppress_context__", - "value": "", + "name": "day_format", + "value": "'%d'", "line_number": -1 } }, @@ -2210,13 +2210,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "template_engine", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_month'", "line_number": -1 } }, @@ -2225,13 +2225,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "template_name", - "value": "'registration/password_reset_confirm.html'", + "name": "month", + "value": "None", "line_number": -1 } }, @@ -2240,13 +2240,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "template_name", - "value": "'registration/login.html'", + "name": "month_format", + "value": "'%b'", "line_number": -1 } }, @@ -2255,13 +2255,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "template_name", - "value": "'registration/password_reset_form.html'", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2270,13 +2270,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "template_name", - "value": "'registration/password_change_form.html'", + "name": "template_name_suffix", + "value": "'_archive_week'", "line_number": -1 } }, @@ -2285,13 +2285,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "template_name", - "value": "'registration/password_change_done.html'", + "name": "week", + "value": "None", "line_number": -1 } }, @@ -2300,13 +2300,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "template_name", - "value": "'registration/logged_out.html'", + "name": "week_format", + "value": "'%U'", "line_number": -1 } }, @@ -2315,13 +2315,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "template_name", - "value": "'registration/password_reset_done.html'", + "name": "template_name_suffix", + "value": "'_archive_year'", "line_number": -1 } }, @@ -2330,13 +2330,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "template_name", - "value": "'registration/password_reset_complete.html'", + "name": "year", + "value": "None", "line_number": -1 } }, @@ -2345,13 +2345,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "template_name", - "value": "None", + "name": "year_format", + "value": "'%Y'", "line_number": -1 } }, @@ -2360,12 +2360,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "1.11" ], - "name": "template_name_field", + "name": "context_object_name", "value": "None", "line_number": -1 } @@ -2375,13 +2375,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.11" ], - "name": "template_name_suffix", - "value": "'_list'", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2390,13 +2390,13 @@ "pk": null, "fields": { "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.11" ], - "name": "template_name_suffix", - "value": "'_archive_week'", + "name": "pk_url_kwarg", + "value": "'pk'", "line_number": -1 } }, @@ -2405,13 +2405,13 @@ "pk": null, "fields": { "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.11" ], - "name": "template_name_suffix", - "value": "'_archive_year'", + "name": "query_pk_and_slug", + "value": "False", "line_number": -1 } }, @@ -2420,13 +2420,13 @@ "pk": null, "fields": { "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.11" ], - "name": "template_name_suffix", - "value": "'_archive'", + "name": "queryset", + "value": "None", "line_number": -1 } }, @@ -2435,13 +2435,13 @@ "pk": null, "fields": { "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.11" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "slug_field", + "value": "'slug'", "line_number": -1 } }, @@ -2450,13 +2450,13 @@ "pk": null, "fields": { "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.11" ], - "name": "template_name_suffix", - "value": "'_archive_month'", + "name": "slug_url_kwarg", + "value": "'slug'", "line_number": -1 } }, @@ -2465,13 +2465,13 @@ "pk": null, "fields": { "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.11" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "template_name_field", + "value": "None", "line_number": -1 } }, @@ -2510,13 +2510,13 @@ "pk": null, "fields": { "klass": [ - "UpdateView", + "DeleteView", "django.views.generic.edit", "Django", "1.11" ], "name": "template_name_suffix", - "value": "'_form'", + "value": "'_confirm_delete'", "line_number": -1 } }, @@ -2525,13 +2525,13 @@ "pk": null, "fields": { "klass": [ - "DeleteView", + "DeletionMixin", "django.views.generic.edit", "Django", "1.11" ], - "name": "template_name_suffix", - "value": "'_confirm_delete'", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2540,13 +2540,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "title", - "value": "ugettext_lazy('Password reset')", + "name": "form_class", + "value": "None", "line_number": -1 } }, @@ -2555,13 +2555,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "title", - "value": "ugettext_lazy('Password reset sent')", + "name": "initial", + "value": "{}", "line_number": -1 } }, @@ -2570,13 +2570,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "title", - "value": "ugettext_lazy('Enter new password')", + "name": "prefix", + "value": "None", "line_number": -1 } }, @@ -2585,13 +2585,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "title", - "value": "ugettext_lazy('Password change')", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2600,13 +2600,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "title", - "value": "ugettext_lazy('Password change successful')", + "name": "fields", + "value": "None", "line_number": -1 } }, @@ -2615,13 +2615,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "UpdateView", + "django.views.generic.edit", "Django", "1.11" ], - "name": "title", - "value": "ugettext_lazy('Password reset complete')", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -2630,13 +2630,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "token_generator", - "value": "", + "name": "allow_empty", + "value": "True", "line_number": -1 } }, @@ -2645,13 +2645,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "token_generator", - "value": "", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -2660,13 +2660,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "__traceback__", - "value": "", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2675,12 +2675,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "url", + "name": "ordering", "value": "None", "line_number": -1 } @@ -2690,13 +2690,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "uses_datetime_field", - "value": "", + "name": "page_kwarg", + "value": "'page'", "line_number": -1 } }, @@ -2705,12 +2705,12 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "week", + "name": "paginate_by", "value": "None", "line_number": -1 } @@ -2720,13 +2720,13 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "week_format", - "value": "'%U'", + "name": "paginate_orphans", + "value": "0", "line_number": -1 } }, @@ -2735,14 +2735,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "with_traceback", - "value": "", - "line_number": -1 + "name": "paginator_class", + "value": "", + "line_number": 26 } }, { @@ -2750,12 +2750,12 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "year", + "name": "queryset", "value": "None", "line_number": -1 } @@ -2765,13 +2765,13 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "year_format", - "value": "'%Y'", + "name": "template_name_suffix", + "value": "'_list'", "line_number": -1 } }, @@ -2780,16 +2780,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], - "name": "_allowed_methods", - "docstring": "", - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "name": "get_login_url", + "docstring": "Override this method to override the login_url attribute.", + "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return force_text(login_url)\n", "kwargs": "self", - "line_number": 106 + "line_number": 19 } }, { @@ -2797,16 +2797,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], - "name": "as_view", - "docstring": "Main entry point for a request-response process.", - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "kwargs": "cls, **initkwargs", - "line_number": 46 + "name": "get_permission_denied_message", + "docstring": "Override this method to override the permission_denied_message attribute.", + "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "kwargs": "self", + "line_number": 31 } }, { @@ -2814,16 +2814,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], - "name": "delete", - "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 257 + "name": "get_redirect_field_name", + "docstring": "Override this method to override the redirect_field_name attribute.", + "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", + "kwargs": "self", + "line_number": 37 } }, { @@ -2831,16 +2831,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], - "name": "delete", + "name": "handle_no_permission", "docstring": "", - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 212 + "code": "def handle_no_permission(self):\n if self.raise_exception:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "kwargs": "self", + "line_number": 43 } }, { @@ -2848,16 +2848,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super(PasswordChangeView, self).dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 606 + "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 53 } }, { @@ -2865,16 +2865,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n if self.redirect_authenticated_user and self.request.user.is_authenticated:\n redirect_to = self.get_success_url()\n if redirect_to == self.request.path:\n raise ValueError(\n \"Redirection loop for authenticated user detected. Check that \"\n \"your LOGIN_REDIRECT_URL doesn't point to a login page.\"\n )\n return HttpResponseRedirect(redirect_to)\n return super(LoginView, self).dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super(PermissionRequiredMixin, self).dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 78 + "line_number": 89 } }, { @@ -2882,16 +2882,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super(LogoutView, self).dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 162 + "name": "get_permission_required", + "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", + "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, six.string_types):\n perms = (self.permission_required, )\n else:\n perms = self.permission_required\n return perms\n", + "kwargs": "self", + "line_number": 66 } }, { @@ -2904,11 +2904,11 @@ "Django", "1.11" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super(PermissionRequiredMixin, self).dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 89 + "name": "has_permission", + "docstring": "Override this method to customize the way permissions are checked.", + "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "kwargs": "self", + "line_number": 82 } }, { @@ -2916,16 +2916,16 @@ "pk": null, "fields": { "klass": [ - "LoginRequiredMixin", + "UserPassesTestMixin", "django.contrib.auth.mixins", "Django", "1.11" ], "name": "dispatch", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super(UserPassesTestMixin, self).dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 53 + "line_number": 112 } }, { @@ -2933,16 +2933,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super(PasswordResetView, self).dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 437 + "name": "get_test_func", + "docstring": "Override this method to use a different test_func method.", + "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", + "kwargs": "self", + "line_number": 106 } }, { @@ -2950,16 +2950,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], - "name": "dispatch", + "name": "test_func", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 80 + "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "kwargs": "self", + "line_number": 101 } }, { @@ -2967,16 +2967,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", + "LoginView", "django.contrib.auth.views", "Django", "1.11" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == INTERNAL_RESET_URL_TOKEN:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super(PasswordResetConfirmView, self).dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, INTERNAL_RESET_URL_TOKEN)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, *args, **kwargs", - "line_number": 474 + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n if self.redirect_authenticated_user and self.request.user.is_authenticated:\n redirect_to = self.get_success_url()\n if redirect_to == self.request.path:\n raise ValueError(\n \"Redirection loop for authenticated user detected. Check that \"\n \"your LOGIN_REDIRECT_URL doesn't point to a login page.\"\n )\n return HttpResponseRedirect(redirect_to)\n return super(LoginView, self).dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 78 } }, { @@ -2984,16 +2984,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "LoginView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super(UserPassesTestMixin, self).dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 112 + "name": "form_valid", + "docstring": "Security check complete. Log the user in.", + "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 117 } }, { @@ -3001,16 +3001,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", + "LoginView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super(PasswordChangeDoneView, self).dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 629 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super(LoginView, self).get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n })\n if self.extra_context is not None:\n context.update(self.extra_context)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 122 } }, { @@ -3018,16 +3018,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "form_invalid", - "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", - "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "kwargs": "self, form", - "line_number": 81 + "name": "get_form_class", + "docstring": "Returns the form class to use in this view", + "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "kwargs": "self", + "line_number": 109 } }, { @@ -3035,16 +3035,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 75 + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super(LoginView, self).get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "kwargs": "self", + "line_number": 112 } }, { @@ -3057,11 +3057,11 @@ "Django", "1.11" ], - "name": "form_valid", - "docstring": "Security check complete. Log the user in.", - "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 117 + "name": "get_redirect_url", + "docstring": "Return the user-originating redirect URL if it's safe.", + "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = is_safe_url(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", + "kwargs": "self", + "line_number": 96 } }, { @@ -3069,16 +3069,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", + "LoginView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super(PasswordResetConfirmView, self).form_valid(form)\n", - "kwargs": "self, form", - "line_number": 517 + "name": "get_success_url", + "docstring": "Returns the supplied success URL.", + "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", + "kwargs": "self", + "line_number": 92 } }, { @@ -3086,16 +3086,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "LogoutView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super(PasswordChangeView, self).form_valid(form)\n", - "kwargs": "self, form", - "line_number": 617 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super(LogoutView, self).dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 162 } }, { @@ -3103,16 +3103,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "LogoutView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", - "kwargs": "self, form", - "line_number": 158 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = super(LogoutView, self).get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n })\n if self.extra_context is not None:\n context.update(self.extra_context)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 200 } }, { @@ -3120,16 +3120,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "LogoutView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super(PasswordResetView, self).form_valid(form)\n", - "kwargs": "self, form", - "line_number": 441 + "name": "get_next_page", + "docstring": "", + "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = is_safe_url(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", + "kwargs": "self", + "line_number": 175 } }, { @@ -3137,16 +3137,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "LogoutView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", + "name": "post", + "docstring": "Logout may be done via POST.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 211 + "line_number": 171 } }, { @@ -3154,16 +3154,16 @@ "pk": null, "fields": { "klass": [ - "BaseListView", - "django.views.generic.list", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "get", + "name": "dispatch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\") % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 159 + "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super(PasswordChangeDoneView, self).dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 629 } }, { @@ -3171,16 +3171,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 234 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super(PasswordChangeView, self).dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 606 } }, { @@ -3188,16 +3188,16 @@ "pk": null, "fields": { "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 114 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super(PasswordChangeView, self).form_valid(form)\n", + "kwargs": "self, form", + "line_number": 617 } }, { @@ -3205,16 +3205,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 347 + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super(PasswordChangeView, self).get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "kwargs": "self", + "line_number": 612 } }, { @@ -3222,16 +3222,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 170 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = super(PasswordContextMixin, self).get_context_data(**kwargs)\n context['title'] = self.title\n if self.extra_context is not None:\n context.update(self.extra_context)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 417 } }, { @@ -3239,16 +3239,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "get", + "name": "get_context_data", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return http.HttpResponseGone()\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 189 + "code": "def get_context_data(self, **kwargs):\n context = super(PasswordResetCompleteView, self).get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 541 } }, { @@ -3256,16 +3256,16 @@ "pk": null, "fields": { "klass": [ - "TemplateView", - "django.views.generic.base", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "get", + "name": "dispatch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 154 + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == INTERNAL_RESET_URL_TOKEN:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super(PasswordResetConfirmView, self).dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, INTERNAL_RESET_URL_TOKEN)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", + "kwargs": "self, *args, **kwargs", + "line_number": 474 } }, { @@ -3273,16 +3273,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "get_allow_empty", - "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", - "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "kwargs": "self", - "line_number": 109 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super(PasswordResetConfirmView, self).form_valid(form)\n", + "kwargs": "self, form", + "line_number": 517 } }, { @@ -3290,33 +3290,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", - "Django", - "1.11" - ], - "name": "get_allow_future", - "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", - "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", - "kwargs": "self", - "line_number": 287 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "1.11" ], "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super(PasswordResetConfirmView, self).get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", "kwargs": "self, **kwargs", - "line_number": 96 + "line_number": 524 } }, { @@ -3324,16 +3307,16 @@ "pk": null, "fields": { "klass": [ - "PasswordContextMixin", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "get_context_data", - "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super(PasswordContextMixin, self).get_context_data(**kwargs)\n context['title'] = self.title\n if self.extra_context is not None:\n context.update(self.extra_context)\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 417 + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super(PasswordResetConfirmView, self).get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", + "kwargs": "self", + "line_number": 512 } }, { @@ -3346,11 +3329,11 @@ "Django", "1.11" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super(PasswordResetConfirmView, self).get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 524 + "name": "get_user", + "docstring": "", + "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring on Python 3\n uid = force_text(urlsafe_base64_decode(uidb64))\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist):\n user = None\n return user\n", + "kwargs": "self, uidb64", + "line_number": 503 } }, { @@ -3358,16 +3341,16 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", - "django.views.generic.base", + "PasswordResetView", + "django.contrib.auth.views", "Django", "1.11" ], - "name": "get_context_data", + "name": "dispatch", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", - "kwargs": "self, **kwargs", - "line_number": 22 + "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super(PasswordResetView, self).dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 437 } }, { @@ -3375,16 +3358,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", + "PasswordResetView", "django.contrib.auth.views", "Django", "1.11" ], - "name": "get_context_data", - "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super(PasswordResetCompleteView, self).get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 541 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super(PasswordResetView, self).form_valid(form)\n", + "kwargs": "self, form", + "line_number": 441 } }, { @@ -3392,16 +3375,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", + "SuccessURLAllowedHostsMixin", "django.contrib.auth.views", "Django", "1.11" ], - "name": "get_context_data", + "name": "get_success_url_allowed_hosts", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super(LogoutView, self).get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n })\n if self.extra_context is not None:\n context.update(self.extra_context)\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 200 + "code": "def get_success_url_allowed_hosts(self):\n allowed_hosts = {self.request.get_host()}\n allowed_hosts.update(self.success_url_allowed_hosts)\n return allowed_hosts\n", + "kwargs": "self", + "line_number": 61 } }, { @@ -3409,16 +3392,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "ContextMixin", + "django.views.generic.base", "Django", "1.11" ], "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super(LoginView, self).get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n })\n if self.extra_context is not None:\n context.update(self.extra_context)\n return context\n", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", "kwargs": "self, **kwargs", - "line_number": 122 + "line_number": 22 } }, { @@ -3426,16 +3409,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "1.11" ], - "name": "get_context_data", - "docstring": "Get the context for this view.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list', self.object_list)\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", - "kwargs": "self, **kwargs", - "line_number": 127 + "name": "delete", + "docstring": "", + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 212 } }, { @@ -3443,16 +3426,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.11" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the form into the context dict.\n \"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super(FormMixin, self).get_context_data(**kwargs)\n", - "kwargs": "self, **kwargs", - "line_number": 88 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return http.HttpResponseGone()\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 189 } }, { @@ -3460,16 +3443,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "1.11" ], - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", - "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", - "kwargs": "self, object_list", - "line_number": 116 + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", + "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n try:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n except NoReverseMatch:\n return None\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", + "kwargs": "self, *args, **kwargs", + "line_number": 168 } }, { @@ -3477,16 +3460,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "1.11" ], - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", - "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", - "kwargs": "self, obj", - "line_number": 85 + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 203 } }, { @@ -3494,16 +3477,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.11" ], - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", - "kwargs": "self, date", - "line_number": 192 + "name": "options", + "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 209 } }, { @@ -3511,16 +3494,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.11" ], - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", - "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", - "kwargs": "self, date", - "line_number": 136 + "name": "patch", + "docstring": "", + "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 218 } }, { @@ -3528,16 +3511,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.11" ], - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "kwargs": "self, date", - "line_number": 251 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 206 } }, { @@ -3545,16 +3528,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.11" ], - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", - "kwargs": "self, date", - "line_number": 74 + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 215 } }, { @@ -3562,16 +3545,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.11" ], - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "kwargs": "self, date", - "line_number": 605 + "name": "get_template_names", + "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "kwargs": "self", + "line_number": 136 } }, { @@ -3579,16 +3562,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.11" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", - "kwargs": "self", - "line_number": 591 + "name": "render_to_response", + "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 119 } }, { @@ -3596,16 +3579,16 @@ "pk": null, "fields": { "klass": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.11" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", - "kwargs": "self", - "line_number": 634 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 154 } }, { @@ -3613,16 +3596,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.11" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", + "name": "_allowed_methods", + "docstring": "", + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", "kwargs": "self", - "line_number": 456 + "line_number": 106 } }, { @@ -3630,16 +3613,16 @@ "pk": null, "fields": { "klass": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.11" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", - "kwargs": "self", - "line_number": 547 + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 46 } }, { @@ -3647,16 +3630,16 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.11" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", - "kwargs": "self", - "line_number": 507 + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 80 } }, { @@ -3664,16 +3647,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.11" ], - "name": "get_dated_items", - "docstring": "Obtain the list of dates and items.", - "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", - "kwargs": "self", - "line_number": 354 + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 90 } }, { @@ -3681,16 +3664,16 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.11" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", - "kwargs": "self", - "line_number": 429 + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", + "kwargs": "self, **kwargs", + "line_number": 36 } }, { @@ -3698,16 +3681,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.11" ], - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", - "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", - "kwargs": "self, **lookup", - "line_number": 367 + "name": "options", + "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 97 } }, { @@ -3715,16 +3698,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", + "BaseArchiveIndexView", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", - "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", "kwargs": "self", - "line_number": 279 + "line_number": 429 } }, { @@ -3732,16 +3715,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", - "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", - "kwargs": "self, queryset, date_type=None, ordering='ASC'", - "line_number": 399 + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 653 } }, { @@ -3754,11 +3737,11 @@ "Django", "1.11" ], - "name": "get_date_list_period", - "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", - "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", - "kwargs": "self", - "line_number": 393 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 347 } }, { @@ -3766,16 +3749,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_day", - "docstring": "Return the day for which this view should display data.", - "code": "def get_day(self):\n \"\"\"\n Return the day for which this view should display data.\n \"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "name": "get_dated_items", + "docstring": "Obtain the list of dates and items.", + "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", "kwargs": "self", - "line_number": 157 + "line_number": 354 } }, { @@ -3783,16 +3766,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", - "kwargs": "self", - "line_number": 150 + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", + "kwargs": "self, **lookup", + "line_number": 367 } }, { @@ -3800,16 +3783,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_form", - "docstring": "Returns an instance of the form to be used in this view.", - "code": "def get_form(self, form_class=None):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", - "kwargs": "self, form_class=None", - "line_number": 39 + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", + "kwargs": "self, queryset, date_type=None, ordering='ASC'", + "line_number": 399 } }, { @@ -3817,16 +3800,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_form_class", - "docstring": "Returns the form class to use in this view", - "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "name": "get_date_list_period", + "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", + "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", "kwargs": "self", - "line_number": 109 + "line_number": 393 } }, { @@ -3834,16 +3817,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_form_class", - "docstring": "Returns the form class to use in this view", - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", + "name": "get_ordering", + "docstring": "Returns the field or fields to use for ordering the queryset; uses the\ndate field by default.", + "code": "def get_ordering(self):\n \"\"\"\n Returns the field or fields to use for ordering the queryset; uses the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", "kwargs": "self", - "line_number": 33 + "line_number": 360 } }, { @@ -3851,16 +3834,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_form_class", - "docstring": "Returns the form class to use in this view.", - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", - "kwargs": "self", - "line_number": 103 + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 605 } }, { @@ -3868,16 +3851,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super(PasswordResetConfirmView, self).get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", "kwargs": "self", - "line_number": 512 + "line_number": 591 } }, { @@ -3885,16 +3868,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", "kwargs": "self", - "line_number": 47 + "line_number": 507 } }, { @@ -3902,16 +3885,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super(PasswordChangeView, self).get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", "kwargs": "self", - "line_number": 612 + "line_number": 634 } }, { @@ -3919,16 +3902,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super(LoginView, self).get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", "kwargs": "self", - "line_number": 112 + "line_number": 547 } }, { @@ -3936,16 +3919,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", "kwargs": "self", - "line_number": 134 + "line_number": 456 } }, { @@ -3953,16 +3936,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_initial", - "docstring": "Returns the initial data to use for forms on this view.", - "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", "kwargs": "self", - "line_number": 21 + "line_number": 486 } }, { @@ -3970,16 +3953,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "DateMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_login_url", - "docstring": "Override this method to override the login_url attribute.", - "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return force_text(login_url)\n", + "name": "get_allow_future", + "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", "kwargs": "self", - "line_number": 19 + "line_number": 287 } }, { @@ -3987,16 +3970,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", + "DateMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", "kwargs": "self", - "line_number": 486 + "line_number": 279 } }, { @@ -4004,16 +3987,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_month", - "docstring": "Return the month for which this view should display data.", - "code": "def get_month(self):\n \"\"\"\n Return the month for which this view should display data.\n \"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", - "kwargs": "self", - "line_number": 95 + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", + "kwargs": "self, value", + "line_number": 307 } }, { @@ -4021,16 +4004,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", - "kwargs": "self", - "line_number": 88 + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", + "kwargs": "self, date", + "line_number": 320 } }, { @@ -4043,11 +4026,11 @@ "Django", "1.11" ], - "name": "_get_next_day", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", "kwargs": "self, date", - "line_number": 184 + "line_number": 192 } }, { @@ -4060,11 +4043,11 @@ "Django", "1.11" ], - "name": "get_next_day", - "docstring": "Get the next valid day.", - "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", - "kwargs": "self, date", - "line_number": 172 + "name": "get_day", + "docstring": "Return the day for which this view should display data.", + "code": "def get_day(self):\n \"\"\"\n Return the day for which this view should display data.\n \"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "kwargs": "self", + "line_number": 157 } }, { @@ -4072,16 +4055,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "_get_next_month", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", - "kwargs": "self, date", - "line_number": 122 + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", + "kwargs": "self", + "line_number": 150 } }, { @@ -4089,16 +4072,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_next_month", - "docstring": "Get the next valid month.", - "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "name": "_get_next_day", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", "kwargs": "self, date", - "line_number": 110 + "line_number": 184 } }, { @@ -4106,16 +4089,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_next_page", - "docstring": "", - "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = is_safe_url(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", - "kwargs": "self", - "line_number": 175 + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "kwargs": "self, date", + "line_number": 172 } }, { @@ -4123,16 +4106,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "_get_next_week", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", "kwargs": "self, date", - "line_number": 240 + "line_number": 178 } }, { @@ -4140,16 +4123,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_next_week", - "docstring": "Get the next valid week.", - "code": "def get_next_week(self, date):\n \"\"\"\n Get the next valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", "kwargs": "self, date", - "line_number": 228 + "line_number": 136 } }, { @@ -4157,16 +4140,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "_get_next_year", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", - "kwargs": "self, date", - "line_number": 63 + "name": "get_month", + "docstring": "Return the month for which this view should display data.", + "code": "def get_month(self):\n \"\"\"\n Return the month for which this view should display data.\n \"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "kwargs": "self", + "line_number": 95 } }, { @@ -4174,16 +4157,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_next_year", - "docstring": "Get the next valid year.", - "code": "def get_next_year(self, date):\n \"\"\"\n Get the next valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", - "kwargs": "self, date", - "line_number": 51 + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "kwargs": "self", + "line_number": 88 } }, { @@ -4191,16 +4174,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateDetailView", + "MonthMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_object", - "docstring": "Get the object this request displays.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", - "kwargs": "self, queryset=None", - "line_number": 653 + "name": "_get_next_month", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "kwargs": "self, date", + "line_number": 122 } }, { @@ -4208,16 +4191,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_object", - "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "kwargs": "self, queryset=None", - "line_number": 22 + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "kwargs": "self, date", + "line_number": 110 } }, { @@ -4225,16 +4208,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "MonthMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_ordering", - "docstring": "Returns the field or fields to use for ordering the queryset; uses the\ndate field by default.", - "code": "def get_ordering(self):\n \"\"\"\n Returns the field or fields to use for ordering the queryset; uses the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", - "kwargs": "self", - "line_number": 360 + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "kwargs": "self, date", + "line_number": 116 } }, { @@ -4242,16 +4225,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset.", - "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset.\n \"\"\"\n return self.ordering\n", - "kwargs": "self", - "line_number": 56 + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", + "kwargs": "self, date", + "line_number": 251 } }, { @@ -4259,16 +4242,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "kwargs": "self, queryset", - "line_number": 87 + "name": "_get_next_week", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "kwargs": "self, date", + "line_number": 240 } }, { @@ -4276,16 +4259,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_paginate_orphans", - "docstring": "Returns the maximum number of orphans extend the last page by when\npaginating.", - "code": "def get_paginate_orphans(self):\n \"\"\"\n Returns the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", - "kwargs": "self", - "line_number": 102 + "name": "get_next_week", + "docstring": "Get the next valid week.", + "code": "def get_next_week(self, date):\n \"\"\"\n Get the next valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "kwargs": "self, date", + "line_number": 228 } }, { @@ -4293,16 +4276,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", - "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", - "line_number": 93 + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "kwargs": "self, date", + "line_number": 234 } }, { @@ -4310,16 +4293,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_permission_denied_message", - "docstring": "Override this method to override the permission_denied_message attribute.", - "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "name": "get_week", + "docstring": "Return the week for which this view should display data", + "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", "kwargs": "self", - "line_number": 31 + "line_number": 213 } }, { @@ -4327,16 +4310,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_permission_required", - "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", - "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, six.string_types):\n perms = (self.permission_required, )\n else:\n perms = self.permission_required\n return perms\n", - "kwargs": "self", - "line_number": 66 + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", + "kwargs": "self, date", + "line_number": 257 } }, { @@ -4344,16 +4327,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "WeekMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_prefix", - "docstring": "Returns the prefix to use for forms on this view", - "code": "def get_prefix(self):\n \"\"\"\n Returns the prefix to use for forms on this view\n \"\"\"\n return self.prefix\n", + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", "kwargs": "self", - "line_number": 27 + "line_number": 206 } }, { @@ -4361,16 +4344,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "YearMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_previous_day", - "docstring": "Get the previous valid day.", - "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", "kwargs": "self, date", - "line_number": 178 + "line_number": 74 } }, { @@ -4378,16 +4361,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "YearMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_previous_month", - "docstring": "Get the previous valid month.", - "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "name": "_get_next_year", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", "kwargs": "self, date", - "line_number": 116 + "line_number": 63 } }, { @@ -4395,16 +4378,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "YearMixin", "django.views.generic.dates", "Django", "1.11" ], - "name": "get_previous_week", - "docstring": "Get the previous valid week.", - "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "name": "get_next_year", + "docstring": "Get the next valid year.", + "code": "def get_next_year(self, date):\n \"\"\"\n Get the next valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", "kwargs": "self, date", - "line_number": 234 + "line_number": 51 } }, { @@ -4429,16 +4412,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_queryset", - "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nNote that this method is called by the default implementation of\n`get_object` and may not be called if `get_object` is overridden.", - "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n Note that this method is called by the default implementation of\n `get_object` and may not be called if `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", "kwargs": "self", - "line_number": 59 + "line_number": 36 } }, { @@ -4446,16 +4429,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.11" ], - "name": "get_queryset", - "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", - "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, six.string_types):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", "kwargs": "self", - "line_number": 27 + "line_number": 29 } }, { @@ -4463,16 +4446,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.11" ], - "name": "get_redirect_field_name", - "docstring": "Override this method to override the redirect_field_name attribute.", - "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", - "kwargs": "self", - "line_number": 37 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 114 } }, { @@ -4480,15 +4463,15 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.11" ], - "name": "get_redirect_url", - "docstring": "Return the user-originating redirect URL if it's safe.", - "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = is_safe_url(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", - "kwargs": "self", + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", "line_number": 96 } }, @@ -4497,16 +4480,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.11" ], - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", - "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n try:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n except NoReverseMatch:\n return None\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", - "kwargs": "self, *args, **kwargs", - "line_number": 168 + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 85 } }, { @@ -4519,11 +4502,28 @@ "Django", "1.11" ], - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", - "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", + "name": "get_object", + "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 22 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "SingleObjectMixin", + "django.views.generic.detail", + "Django", + "1.11" + ], + "name": "get_queryset", + "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nNote that this method is called by the default implementation of\n`get_object` and may not be called if `get_object` is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n Note that this method is called by the default implementation of\n `get_object` and may not be called if `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", "kwargs": "self", - "line_number": 79 + "line_number": 59 } }, { @@ -4531,16 +4531,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.11" ], - "name": "get_success_url", - "docstring": "Returns the supplied URL.", - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", "kwargs": "self", - "line_number": 143 + "line_number": 79 } }, { @@ -4548,16 +4548,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.11" ], - "name": "get_success_url", - "docstring": "Returns the supplied success URL.", - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", "kwargs": "self", - "line_number": 63 + "line_number": 124 } }, { @@ -4565,16 +4565,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", + "BaseCreateView", "django.views.generic.edit", "Django", "1.11" ], - "name": "get_success_url", - "docstring": "", - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", - "kwargs": "self", - "line_number": 271 + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 211 } }, { @@ -4582,16 +4582,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.11" ], - "name": "get_success_url", - "docstring": "Returns the supplied success URL.", - "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", - "kwargs": "self", - "line_number": 92 + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 215 } }, { @@ -4599,16 +4599,16 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.11" ], - "name": "get_success_url_allowed_hosts", - "docstring": "", - "code": "def get_success_url_allowed_hosts(self):\n allowed_hosts = {self.request.get_host()}\n allowed_hosts.update(self.success_url_allowed_hosts)\n return allowed_hosts\n", - "kwargs": "self", - "line_number": 61 + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 234 } }, { @@ -4616,16 +4616,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.11" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", - "kwargs": "self", - "line_number": 124 + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 238 } }, { @@ -4633,16 +4633,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", - "kwargs": "self", - "line_number": 185 + "name": "delete", + "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 257 } }, { @@ -4650,16 +4650,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "get_template_names", - "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", "kwargs": "self", - "line_number": 136 + "line_number": 271 } }, { @@ -4667,16 +4667,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "get_test_func", - "docstring": "Override this method to use a different test_func method.", - "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", - "kwargs": "self", - "line_number": 106 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 268 } }, { @@ -4684,16 +4684,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "get_user", - "docstring": "", - "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring on Python 3\n uid = force_text(urlsafe_base64_decode(uidb64))\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist):\n user = None\n return user\n", - "kwargs": "self, uidb64", - "line_number": 503 + "name": "form_invalid", + "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", + "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 81 } }, { @@ -4701,16 +4701,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "get_week", - "docstring": "Return the week for which this view should display data", - "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", - "kwargs": "self", - "line_number": 213 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 75 } }, { @@ -4718,16 +4718,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "kwargs": "self, date", - "line_number": 257 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the form into the context dict.\n \"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super(FormMixin, self).get_context_data(**kwargs)\n", + "kwargs": "self, **kwargs", + "line_number": 88 } }, { @@ -4735,16 +4735,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", - "kwargs": "self", - "line_number": 206 + "name": "get_form", + "docstring": "Returns an instance of the form to be used in this view.", + "code": "def get_form(self, form_class=None):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class=None", + "line_number": 39 } }, { @@ -4752,16 +4752,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "get_year", - "docstring": "Return the year for which this view should display data.", - "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "name": "get_form_class", + "docstring": "Returns the form class to use in this view", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", "kwargs": "self", - "line_number": 36 + "line_number": 33 } }, { @@ -4769,16 +4769,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", "kwargs": "self", - "line_number": 29 + "line_number": 47 } }, { @@ -4786,16 +4786,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "handle_no_permission", - "docstring": "", - "code": "def handle_no_permission(self):\n if self.raise_exception:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "name": "get_initial", + "docstring": "Returns the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", "kwargs": "self", - "line_number": 43 + "line_number": 21 } }, { @@ -4803,16 +4803,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "has_permission", - "docstring": "Override this method to customize the way permissions are checked.", - "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "name": "get_prefix", + "docstring": "Returns the prefix to use for forms on this view", + "code": "def get_prefix(self):\n \"\"\"\n Returns the prefix to use for forms on this view\n \"\"\"\n return self.prefix\n", "kwargs": "self", - "line_number": 82 + "line_number": 27 } }, { @@ -4820,16 +4820,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "head", - "docstring": "", - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 203 + "name": "get_success_url", + "docstring": "Returns the supplied success URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", + "kwargs": "self", + "line_number": 63 } }, { @@ -4837,16 +4837,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "http_method_not_allowed", - "docstring": "", - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 90 + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", + "kwargs": "self, form", + "line_number": 158 } }, { @@ -4854,16 +4854,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.11" - ], - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", - "kwargs": "self, **kwargs", - "line_number": 36 + ], + "name": "get_form_class", + "docstring": "Returns the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "kwargs": "self", + "line_number": 103 } }, { @@ -4871,16 +4871,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", - "kwargs": "self, value", - "line_number": 307 + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 134 } }, { @@ -4888,16 +4888,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "kwargs": "self, date", - "line_number": 320 + "name": "get_success_url", + "docstring": "Returns the supplied URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 143 } }, { @@ -4905,16 +4905,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.11" ], - "name": "options", - "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n return self.render_to_response(self.get_context_data())\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 209 + "line_number": 170 } }, { @@ -4922,16 +4922,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.11" ], - "name": "options", - "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 97 + "line_number": 176 } }, { @@ -4939,16 +4939,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.11" ], - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': force_text(e),\n })\n", - "kwargs": "self, queryset, page_size", - "line_number": 62 + "name": "put", + "docstring": "", + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 189 } }, { @@ -4956,16 +4956,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseListView", + "django.views.generic.list", "Django", "1.11" ], - "name": "patch", + "name": "get", "docstring": "", - "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\") % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 218 + "line_number": 159 } }, { @@ -4973,16 +4973,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 215 + "name": "get_allow_empty", + "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 109 } }, { @@ -4990,16 +4990,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 176 + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list', self.object_list)\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 127 } }, { @@ -5007,16 +5007,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "post", - "docstring": "Logout may be done via POST.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 171 + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 116 } }, { @@ -5024,16 +5024,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 268 + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset.", + "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset.\n \"\"\"\n return self.ordering\n", + "kwargs": "self", + "line_number": 56 } }, { @@ -5041,16 +5041,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 238 + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 87 } }, { @@ -5058,16 +5058,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 206 + "name": "get_paginate_orphans", + "docstring": "Returns the maximum number of orphans extend the last page by when\npaginating.", + "code": "def get_paginate_orphans(self):\n \"\"\"\n Returns the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "kwargs": "self", + "line_number": 102 } }, { @@ -5075,16 +5075,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "put", - "docstring": "", - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 215 + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", + "line_number": 93 } }, { @@ -5092,16 +5092,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "put", - "docstring": "", - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 189 + "name": "get_queryset", + "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", + "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, six.string_types):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "kwargs": "self", + "line_number": 27 } }, { @@ -5109,16 +5109,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "render_to_response", - "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", - "kwargs": "self, context, **response_kwargs", - "line_number": 119 + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': force_text(e),\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 62 } }, { @@ -5126,16 +5126,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.11" ], - "name": "test_func", - "docstring": "", - "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", "kwargs": "self", - "line_number": 101 + "line_number": 185 } }, { @@ -5143,14 +5143,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], @@ -5162,14 +5162,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.11" ], @@ -5181,14 +5181,33 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", + "Django", + "1.11" + ], + "child": [ + "UserPassesTestMixin", + "django.contrib.auth.mixins", + "Django", + "1.11" + ], + "order": 0 + } +}, +{ + "model": "cbv.inheritance", + "pk": null, + "fields": { + "parent": [ + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "1.11" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "LoginView", + "django.contrib.auth.views", "Django", "1.11" ], @@ -5200,18 +5219,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "FormView", + "django.views.generic.edit", "Django", "1.11" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "LoginView", + "django.contrib.auth.views", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5219,14 +5238,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "1.11" ], "child": [ - "FormView", - "django.views.generic.edit", + "LogoutView", + "django.contrib.auth.views", "Django", "1.11" ], @@ -5238,18 +5257,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", + "TemplateView", "django.views.generic.base", "Django", "1.11" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "LogoutView", + "django.contrib.auth.views", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5257,14 +5276,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "1.11" ], "child": [ - "TemplateView", - "django.views.generic.base", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "1.11" ], @@ -5276,18 +5295,18 @@ "pk": null, "fields": { "parent": [ - "View", + "TemplateView", "django.views.generic.base", "Django", "1.11" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5295,14 +5314,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "1.11" ], "child": [ - "RedirectView", - "django.views.generic.base", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "1.11" ], @@ -5314,18 +5333,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "1.11" ], "child": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5333,14 +5352,14 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "1.11" ], "child": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "1.11" ], @@ -5352,18 +5371,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5371,14 +5390,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "1.11" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "1.11" ], @@ -5390,18 +5409,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "1.11" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5409,14 +5428,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "1.11" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "1.11" ], @@ -5428,18 +5447,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5447,14 +5466,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "1.11" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "1.11" ], @@ -5466,18 +5485,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormView", + "django.views.generic.edit", "Django", "1.11" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5485,14 +5504,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.11" ], @@ -5504,14 +5523,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "CreateView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "1.11" ], @@ -5523,18 +5542,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "ContextMixin", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "DetailView", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5542,18 +5561,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.11" ], - "order": 0 + "order": 2 } }, { @@ -5561,14 +5580,14 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.11" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.11" ], @@ -5580,18 +5599,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5599,14 +5618,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.11" ], @@ -5618,14 +5637,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.11" ], @@ -5637,18 +5656,18 @@ "pk": null, "fields": { "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5656,18 +5675,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 2 } }, { @@ -5675,18 +5694,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DateMixin", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "BaseDateListView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 3 } }, { @@ -5694,18 +5713,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.11" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 4 } }, { @@ -5713,13 +5732,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", + "MultipleObjectMixin", "django.views.generic.list", "Django", "1.11" ], "child": [ - "YearArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.11" @@ -5732,18 +5751,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DateMixin", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "WeekArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5751,18 +5770,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "TodayArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 2 } }, { @@ -5770,13 +5789,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "MonthArchiveView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.11" @@ -5789,18 +5808,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "DayArchiveView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5808,18 +5827,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "ArchiveIndexView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 2 } }, { @@ -5827,18 +5846,18 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 3 } }, { @@ -5846,14 +5865,14 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.11" ], @@ -5865,18 +5884,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5884,18 +5903,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 2 } }, { @@ -5903,14 +5922,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], @@ -5922,14 +5941,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.11" ], @@ -5941,18 +5960,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -5960,18 +5979,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 2 } }, { @@ -5979,14 +5998,14 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "YearMixin", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.11" ], @@ -5998,18 +6017,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 0 + "order": 1 } }, { @@ -6017,14 +6036,14 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.11" ], "child": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", + "DateDetailView", + "django.views.generic.dates", "Django", "1.11" ], @@ -6036,13 +6055,13 @@ "pk": null, "fields": { "parent": [ - "DateMixin", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.11" ], "child": [ - "BaseDateListView", + "DateDetailView", "django.views.generic.dates", "Django", "1.11" @@ -6055,18 +6074,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.11" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6074,14 +6093,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], @@ -6093,18 +6112,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.11" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6112,14 +6131,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.11" ], @@ -6131,18 +6150,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.11" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6150,14 +6169,14 @@ "pk": null, "fields": { "parent": [ - "BaseFormView", - "django.views.generic.edit", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "FormView", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.11" ], @@ -6169,18 +6188,18 @@ "pk": null, "fields": { "parent": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.11" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6188,14 +6207,14 @@ "pk": null, "fields": { "parent": [ - "BaseListView", - "django.views.generic.list", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "ListView", - "django.views.generic.list", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.11" ], @@ -6207,18 +6226,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.11" ], "child": [ - "BaseListView", - "django.views.generic.list", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6226,14 +6245,14 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.11" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.11" ], @@ -6245,8 +6264,8 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.11" ], @@ -6256,7 +6275,7 @@ "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6264,14 +6283,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", + "View", "django.views.generic.base", "Django", "1.11" ], "child": [ - "TemplateView", - "django.views.generic.base", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.11" ], @@ -6283,18 +6302,18 @@ "pk": null, "fields": { "parent": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.11" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6302,14 +6321,14 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.11" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "DetailView", + "django.views.generic.detail", "Django", "1.11" ], @@ -6321,18 +6340,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6340,18 +6359,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6359,18 +6378,18 @@ "pk": null, "fields": { "parent": [ - "BaseCreateView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.11" ], "child": [ - "CreateView", + "BaseCreateView", "django.views.generic.edit", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6378,13 +6397,13 @@ "pk": null, "fields": { "parent": [ - "BaseDeleteView", + "ProcessFormView", "django.views.generic.edit", "Django", "1.11" ], "child": [ - "DeleteView", + "BaseCreateView", "django.views.generic.edit", "Django", "1.11" @@ -6397,8 +6416,8 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.11" ], @@ -6408,7 +6427,7 @@ "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6422,8 +6441,8 @@ "1.11" ], "child": [ - "DetailView", - "django.views.generic.detail", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.11" ], @@ -6435,18 +6454,18 @@ "pk": null, "fields": { "parent": [ - "FormView", + "FormMixin", "django.views.generic.edit", "Django", "1.11" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseFormView", + "django.views.generic.edit", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6454,14 +6473,14 @@ "pk": null, "fields": { "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.11" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "1.11" ], @@ -6473,18 +6492,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.11" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6492,14 +6511,14 @@ "pk": null, "fields": { "parent": [ - "FormView", + "ProcessFormView", "django.views.generic.edit", "Django", "1.11" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.11" ], @@ -6511,18 +6530,18 @@ "pk": null, "fields": { "parent": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.11" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6530,14 +6549,14 @@ "pk": null, "fields": { "parent": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.11" ], "child": [ - "WeekArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "1.11" ], @@ -6549,18 +6568,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.11" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6568,14 +6587,14 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.11" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.11" ], @@ -6587,18 +6606,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6606,18 +6625,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6625,36 +6644,17 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "1.11" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", - "Django", - "1.11" - ], - "order": 1 - } -}, -{ - "model": "cbv.inheritance", - "pk": null, - "fields": { - "parent": [ "FormView", "django.views.generic.edit", "Django", "1.11" ], - "child": [ - "LoginView", - "django.contrib.auth.views", - "Django", - "1.11" - ], "order": 1 } }, @@ -6663,18 +6663,18 @@ "pk": null, "fields": { "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.11" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.11" ], - "order": 1 + "order": 0 } }, { @@ -6682,14 +6682,14 @@ "pk": null, "fields": { "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.11" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.11" ], @@ -6701,18 +6701,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.11" ], - "order": 2 + "order": 0 } }, { @@ -6720,18 +6720,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.11" ], "child": [ - "TemplateView", - "django.views.generic.base", + "UpdateView", + "django.views.generic.edit", "Django", "1.11" ], - "order": 2 + "order": 0 } }, { @@ -6739,18 +6739,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.11" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.11" ], - "order": 2 + "order": 1 } }, { @@ -6758,18 +6758,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.11" ], - "order": 2 + "order": 0 } }, { @@ -6783,12 +6783,12 @@ "1.11" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.11" ], - "order": 2 + "order": 1 } }, { @@ -6796,18 +6796,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.11" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.11" ], - "order": 2 + "order": 0 } }, { @@ -6815,18 +6815,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.11" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.11" ], - "order": 3 + "order": 1 } }, { @@ -6834,18 +6834,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.11" ], - "order": 3 + "order": 0 } }, { @@ -6853,18 +6853,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.11" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.11" ], - "order": 4 + "order": 0 } } ] diff --git a/cbv/fixtures/1.3.json b/cbv/fixtures/1.3.json index 5c6aa6ca..569209fe 100644 --- a/cbv/fixtures/1.3.json +++ b/cbv/fixtures/1.3.json @@ -1,3118 +1,3067 @@ [ { + "model": "cbv.projectversion", "fields": { "project": [ "Django" ], "version_number": "1.3", "sortable_version_number": "0103" - }, - "model": "cbv.projectversion", - "pk": null + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.3" ], - "docstring": "", "name": "django.views.generic", + "docstring": "", "filename": "/django/views/generic/__init__.py" - }, - "model": "cbv.module", - "pk": null + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.3" ], - "docstring": "", "name": "django.views.generic.base", + "docstring": "", "filename": "/django/views/generic/base.py" - }, - "model": "cbv.module", - "pk": null + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.3" ], - "docstring": "", "name": "django.views.generic.dates", + "docstring": "", "filename": "/django/views/generic/dates.py" - }, - "model": "cbv.module", - "pk": null + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.3" ], - "docstring": "", "name": "django.views.generic.detail", + "docstring": "", "filename": "/django/views/generic/detail.py" - }, - "model": "cbv.module", - "pk": null + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.3" ], - "docstring": "", "name": "django.views.generic.edit", + "docstring": "", "filename": "/django/views/generic/edit.py" - }, - "model": "cbv.module", - "pk": null + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.3" ], - "docstring": "", "name": "django.views.generic.list", + "docstring": "", "filename": "/django/views/generic/list.py" - }, - "model": "cbv.module", - "pk": null + } }, { + "model": "cbv.klass", "fields": { - "line_number": 10, - "name": "GenericViewError", - "docs_url": "", - "docstring": "A problem in a generic view.", "module": [ "django.views.generic", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "GenericViewError", + "docstring": "A problem in a generic view.", + "line_number": 10, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 126, - "name": "RedirectView", - "docs_url": "", - "docstring": "A view that provides a redirect on any GET request.", "module": [ "django.views.generic.base", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "RedirectView", + "docstring": "A view that provides a redirect on any GET request.", + "line_number": 126, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 81, - "name": "TemplateResponseMixin", - "docs_url": "", - "docstring": "A mixin that can be used to render a template.", "module": [ "django.views.generic.base", "Django", "1.3" ], - "import_path": "django.views.generic.base" - }, - "model": "cbv.klass", - "pk": null + "name": "TemplateResponseMixin", + "docstring": "A mixin that can be used to render a template.", + "line_number": 81, + "import_path": "django.views.generic.base", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 112, - "name": "TemplateView", - "docs_url": "", - "docstring": "A view that renders a template.", "module": [ "django.views.generic.base", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "TemplateView", + "docstring": "A view that renders a template.", + "line_number": 112, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 12, - "name": "View", - "docs_url": "", - "docstring": "Intentionally simple parent class for all views. Only implements\ndispatch-by-method and simple sanity checking.", "module": [ "django.views.generic.base", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "View", + "docstring": "Intentionally simple parent class for all views. Only implements\ndispatch-by-method and simple sanity checking.", + "line_number": 12, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 253, - "name": "ArchiveIndexView", - "docs_url": "", - "docstring": "Top-level archive of date-based items.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "ArchiveIndexView", + "docstring": "Top-level archive of date-based items.", + "line_number": 253, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 230, - "name": "BaseArchiveIndexView", - "docs_url": "", - "docstring": "Base class for archives of date-based items.\n\nRequires a response mixin.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseArchiveIndexView", + "docstring": "Base class for archives of date-based items.\n\nRequires a response mixin.", + "line_number": 230, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 447, - "name": "BaseDateDetailView", - "docs_url": "", - "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDateDetailView", + "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", + "line_number": 447, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 165, - "name": "BaseDateListView", - "docs_url": "", - "docstring": "Abstract base class for date-based views display a list of objects.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDateListView", + "docstring": "Abstract base class for date-based views display a list of objects.", + "line_number": 165, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 382, - "name": "BaseDayArchiveView", - "docs_url": "", - "docstring": "List of objects published on a given day.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDayArchiveView", + "docstring": "List of objects published on a given day.", + "line_number": 382, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 301, - "name": "BaseMonthArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseMonthArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 301, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 428, - "name": "BaseTodayArchiveView", - "docs_url": "", - "docstring": "List of objects published today.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseTodayArchiveView", + "docstring": "List of objects published today.", + "line_number": 428, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 340, - "name": "BaseWeekArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given week.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseWeekArchiveView", + "docstring": "List of objects published in a given week.", + "line_number": 340, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 260, - "name": "BaseYearArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseYearArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 260, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 482, - "name": "DateDetailView", - "docs_url": "", - "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DateDetailView", + "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", + "line_number": 482, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 142, - "name": "DateMixin", - "docs_url": "", - "docstring": "Mixin class for views manipulating date-based data.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "DateMixin", + "docstring": "Mixin class for views manipulating date-based data.", + "line_number": 142, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 421, - "name": "DayArchiveView", - "docs_url": "", - "docstring": "List of objects published on a given day.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DayArchiveView", + "docstring": "List of objects published on a given day.", + "line_number": 421, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 78, - "name": "DayMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "DayMixin", + "docstring": "", + "line_number": 78, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 333, - "name": "MonthArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "MonthArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 333, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 37, - "name": "MonthMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "MonthMixin", + "docstring": "", + "line_number": 37, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 440, - "name": "TodayArchiveView", - "docs_url": "", - "docstring": "List of objects published today.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "TodayArchiveView", + "docstring": "List of objects published today.", + "line_number": 440, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 375, - "name": "WeekArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given week.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "WeekArchiveView", + "docstring": "List of objects published in a given week.", + "line_number": 375, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 117, - "name": "WeekMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "WeekMixin", + "docstring": "", + "line_number": 117, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 294, - "name": "YearArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "YearArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 294, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 12, - "name": "YearMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.dates", "Django", "1.3" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "YearMixin", + "docstring": "", + "line_number": 12, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 96, - "name": "BaseDetailView", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.detail", "Django", "1.3" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDetailView", + "docstring": "", + "line_number": 96, + "import_path": "django.views.generic.detail", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 144, - "name": "DetailView", - "docs_url": "", - "docstring": "Render a \"detail\" view of an object.\n\nBy default this is a model instance looked up from `self.queryset`, but the\nview will support display of *any* object by overriding `self.get_object()`.", "module": [ "django.views.generic.detail", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DetailView", + "docstring": "Render a \"detail\" view of an object.\n\nBy default this is a model instance looked up from `self.queryset`, but the\nview will support display of *any* object by overriding `self.get_object()`.", + "line_number": 144, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 10, - "name": "SingleObjectMixin", - "docs_url": "", - "docstring": "Provides the ability to retrieve a single object for further manipulation.", "module": [ "django.views.generic.detail", "Django", "1.3" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "SingleObjectMixin", + "docstring": "Provides the ability to retrieve a single object for further manipulation.", + "line_number": 10, + "import_path": "django.views.generic.detail", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 103, - "name": "SingleObjectTemplateResponseMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.detail", "Django", "1.3" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null -}, + "name": "SingleObjectTemplateResponseMixin", + "docstring": "", + "line_number": 103, + "import_path": "django.views.generic.detail", + "docs_url": "" + } +}, { + "model": "cbv.klass", "fields": { - "line_number": 160, - "name": "BaseCreateView", - "docs_url": "", - "docstring": "Base view for creating an new object instance.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.3" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseCreateView", + "docstring": "Base view for creating an new object instance.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 160, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 229, - "name": "BaseDeleteView", - "docs_url": "", - "docstring": "Base view for deleting an object.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.3" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDeleteView", + "docstring": "Base view for deleting an object.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 229, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 148, - "name": "BaseFormView", - "docs_url": "", - "docstring": "A base view for displaying a form", "module": [ "django.views.generic.edit", "Django", "1.3" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseFormView", + "docstring": "A base view for displaying a form", + "line_number": 148, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 183, - "name": "BaseUpdateView", - "docs_url": "", - "docstring": "Base view for updating an existing object.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.3" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseUpdateView", + "docstring": "Base view for updating an existing object.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 183, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 175, - "name": "CreateView", - "docs_url": "", - "docstring": "View for creating an new object instance,\nwith a response rendered by template.", "module": [ "django.views.generic.edit", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "CreateView", + "docstring": "View for creating an new object instance,\nwith a response rendered by template.", + "line_number": 175, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 237, - "name": "DeleteView", - "docs_url": "", - "docstring": "View for deleting an object retrieved with `self.get_object()`,\nwith a response rendered by template.", "module": [ "django.views.generic.edit", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DeleteView", + "docstring": "View for deleting an object retrieved with `self.get_object()`,\nwith a response rendered by template.", + "line_number": 237, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 206, - "name": "DeletionMixin", - "docs_url": "", - "docstring": "A mixin providing the ability to delete objects", "module": [ "django.views.generic.edit", "Django", "1.3" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "DeletionMixin", + "docstring": "A mixin providing the ability to delete objects", + "line_number": 206, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 9, - "name": "FormMixin", - "docs_url": "", - "docstring": "A mixin that provides a way to show and handle a form in a request.", "module": [ "django.views.generic.edit", "Django", "1.3" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "FormMixin", + "docstring": "A mixin that provides a way to show and handle a form in a request.", + "line_number": 9, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 154, - "name": "FormView", - "docs_url": "", - "docstring": "A view for displaying a form, and rendering a template response.", "module": [ "django.views.generic.edit", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "FormView", + "docstring": "A view for displaying a form, and rendering a template response.", + "line_number": 154, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 66, - "name": "ModelFormMixin", - "docs_url": "", - "docstring": "A mixin that provides a way to show and handle a modelform in a request.", "module": [ "django.views.generic.edit", "Django", "1.3" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "ModelFormMixin", + "docstring": "A mixin that provides a way to show and handle a modelform in a request.", + "line_number": 66, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 125, - "name": "ProcessFormView", - "docs_url": "", - "docstring": "A mixin that processes a form on POST.", "module": [ "django.views.generic.edit", "Django", "1.3" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "ProcessFormView", + "docstring": "A mixin that processes a form on POST.", + "line_number": 125, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 198, - "name": "UpdateView", - "docs_url": "", - "docstring": "View for updating an object,\nwith a response rendered by template..", "module": [ "django.views.generic.edit", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "UpdateView", + "docstring": "View for updating an object,\nwith a response rendered by template..", + "line_number": 198, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 114, - "name": "BaseListView", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.list", "Django", "1.3" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseListView", + "docstring": "", + "line_number": 114, + "import_path": "django.views.generic.list", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 151, - "name": "ListView", - "docs_url": "", - "docstring": "Render some list of objects, set by `self.model` or `self.queryset`.\n`self.queryset` can actually be any iterable of items, not just a queryset.", "module": [ "django.views.generic.list", "Django", "1.3" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "ListView", + "docstring": "Render some list of objects, set by `self.model` or `self.queryset`.\n`self.queryset` can actually be any iterable of items, not just a queryset.", + "line_number": 151, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 11, - "name": "MultipleObjectMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.list", "Django", "1.3" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "MultipleObjectMixin", + "docstring": "", + "line_number": 11, + "import_path": "django.views.generic.list", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 125, - "name": "MultipleObjectTemplateResponseMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.list", "Django", "1.3" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "MultipleObjectTemplateResponseMixin", + "docstring": "", + "line_number": 125, + "import_path": "django.views.generic.list", + "docs_url": "" + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "1.3" ], - "value": "True", - "name": "allow_empty" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "args", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.3" ], - "value": "False", - "name": "allow_empty" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__delattr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DateMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.3" ], - "value": "False", - "name": "allow_future" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__getattribute__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.3" ], - "value": "", - "name": "args" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__getitem__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.3" ], - "value": "'latest'", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__getslice__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "1.3" ], - "value": "None", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__init__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "1.3" ], - "value": "None", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "message", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DateMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.3" ], - "value": "None", - "name": "date_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__reduce__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.3" ], - "value": "None", - "name": "day" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__repr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.3" ], - "value": "'%d'", - "name": "day_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__setattr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.3" ], - "value": "", - "name": "__delattr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__setstate__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.3" ], - "value": "None", - "name": "form_class" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__str__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.3" ], - "value": "", - "name": "__getattribute__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__unicode__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "RedirectView", + "django.views.generic.base", "Django", "1.3" ], - "value": "", - "name": "__getitem__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "permanent", + "value": "True", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "RedirectView", + "django.views.generic.base", "Django", "1.3" ], - "value": "", - "name": "__getslice__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "query_string", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "View", + "RedirectView", "django.views.generic.base", "Django", "1.3" ], - "value": "['get', 'post', 'put', 'delete', 'head', 'options', 'trace']", - "name": "http_method_names" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.3" ], - "value": "", - "name": "__init__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "response_class", + "value": "", + "line_number": 124 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.3" ], - "value": "{}", - "name": "initial" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.3" ], - "value": "False", - "name": "make_object_list" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "http_method_names", + "value": "['get', 'post', 'put', 'delete', 'head', 'options', 'trace']", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.3" ], - "value": "", - "name": "message" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.3" ], - "value": "None", - "name": "model" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "context_object_name", + "value": "'latest'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.3" ], - "value": "None", - "name": "model" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "allow_empty", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthMixin", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.3" ], - "value": "None", - "name": "month" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "make_object_list", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.3" ], - "value": "'%b'", - "name": "month_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "allow_future", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DateMixin", + "django.views.generic.dates", "Django", "1.3" ], + "name": "date_field", "value": "None", - "name": "paginate_by" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": 12, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.3" ], - "value": "", - "name": "paginator_class" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_day'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "DayMixin", + "django.views.generic.dates", "Django", "1.3" ], - "value": "True", - "name": "permanent" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "day", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "1.3" ], - "value": "None", - "name": "queryset" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "day_format", + "value": "'%d'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.3" ], - "value": "None", - "name": "queryset" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_month'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "MonthMixin", + "django.views.generic.dates", "Django", "1.3" ], - "value": "False", - "name": "query_string" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "month", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "MonthMixin", + "django.views.generic.dates", "Django", "1.3" ], - "value": "", - "name": "__reduce__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "month_format", + "value": "'%b'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.3" ], - "value": "", - "name": "__repr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_day'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": 124, "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.3" ], - "value": "", - "name": "response_class" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_week'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "WeekMixin", + "django.views.generic.dates", "Django", "1.3" ], - "value": "", - "name": "__setattr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "week", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "WeekMixin", + "django.views.generic.dates", "Django", "1.3" ], - "value": "", - "name": "__setstate__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "week_format", + "value": "'%U'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.3" ], - "value": "'slug'", - "name": "slug_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_year'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "YearMixin", + "django.views.generic.dates", "Django", "1.3" ], - "value": "", - "name": "__str__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "year", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.3" ], - "value": "None", - "name": "success_url" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "year_format", + "value": "'%Y'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.3" ], + "name": "context_object_name", "value": "None", - "name": "success_url" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.3" ], + "name": "model", "value": "None", - "name": "template_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "1.3" ], + "name": "queryset", "value": "None", - "name": "template_name_field" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.3" ], - "value": "'_archive_day'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "slug_field", + "value": "'slug'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.3" ], - "value": "'_archive_week'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_field", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.3" ], - "value": "'_archive_month'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_detail'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "1.3" ], - "value": "'_archive_year'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_form'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.3" ], - "value": "'_archive_day'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_confirm_delete'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.3" ], - "value": "'_archive'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "success_url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormMixin", + "django.views.generic.edit", "Django", "1.3" ], - "value": "'_detail'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "form_class", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "UpdateView", + "FormMixin", "django.views.generic.edit", "Django", "1.3" ], - "value": "'_form'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "initial", + "value": "{}", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DeleteView", + "FormMixin", "django.views.generic.edit", "Django", "1.3" ], - "value": "'_confirm_delete'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "success_url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "CreateView", + "UpdateView", "django.views.generic.edit", "Django", "1.3" ], + "name": "template_name_suffix", "value": "'_form'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectTemplateResponseMixin", + "MultipleObjectMixin", "django.views.generic.list", "Django", "1.3" ], - "value": "'_list'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "allow_empty", + "value": "True", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.3" ], - "value": "", - "name": "__unicode__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "context_object_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.3" ], + "name": "model", "value": "None", - "name": "url" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.3" ], + "name": "paginate_by", "value": "None", - "name": "week" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.3" ], - "value": "'%U'", - "name": "week_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "paginator_class", + "value": "", + "line_number": 12 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.3" ], + "name": "queryset", "value": "None", - "name": "year" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.3" ], - "value": "'%Y'", - "name": "year_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_list'", + "line_number": -1 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 30, - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n # sanitize keyword arguments\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(u\"You tried to pass in the %s method name as a \"\n u\"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(u\"%s() received an invalid keyword %r\" % (\n cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n return self.dispatch(request, *args, **kwargs)\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "name": "as_view", - "docstring": "Main entry point for a request-response process.", "klass": [ - "View", + "RedirectView", "django.views.generic.base", "Django", "1.3" ], - "kwargs": "cls, **initkwargs" - }, - "model": "cbv.method", - "pk": null + "name": "delete", + "docstring": "", + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 174 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 212, - "code": "def delete(self, request, *args, **kwargs):\n self.object = self.get_object()\n self.object.delete()\n return HttpResponseRedirect(self.get_success_url())\n", - "name": "delete", - "docstring": "", "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(**kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s' % self.request.path,\n extra={\n 'status_code': 410,\n 'request': self.request\n })\n return http.HttpResponseGone()\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 150 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 174, - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "delete", - "docstring": "", "klass": [ "RedirectView", "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", + "code": "def get_redirect_url(self, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n args = self.request.META[\"QUERY_STRING\"]\n if args and self.query_string:\n url = \"%s?%s\" % (self.url, args)\n else:\n url = self.url\n return url % kwargs\n else:\n return None\n", + "kwargs": "self, **kwargs", + "line_number": 134 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 57, - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return handler(request, *args, **kwargs)\n", - "name": "dispatch", - "docstring": "", "klass": [ - "View", + "RedirectView", "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 165 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 62, - "code": "def form_invalid(self, form):\n return self.render_to_response(self.get_context_data(form=form))\n", - "name": "form_invalid", - "docstring": "", "klass": [ - "FormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "options", + "docstring": "", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 171 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 59, - "code": "def form_valid(self, form):\n return HttpResponseRedirect(self.get_success_url())\n", - "name": "form_valid", - "docstring": "", "klass": [ - "FormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 168 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 111, - "code": "def form_valid(self, form):\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", - "name": "form_valid", - "docstring": "", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 177 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 129, - "code": "def get(self, request, *args, **kwargs):\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n return self.render_to_response(self.get_context_data(form=form))\n", - "name": "get", - "docstring": "", "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "kwargs": "self", + "line_number": 99 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 97, - "code": "def get(self, request, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, request, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "render_to_response", + "docstring": "Returns a response with a template rendered with the given context.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response with a template rendered with the given context.\n \"\"\"\n return self.response_class(\n request = self.request,\n template = self.get_template_names(),\n context = context,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 88 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 166, - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 121 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 189, - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n return {\n 'params': kwargs\n }\n", + "kwargs": "self, **kwargs", + "line_number": 116 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 121, - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "TemplateView", + "View", "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n # sanitize keyword arguments\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(u\"You tried to pass in the %s method name as a \"\n u\"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(u\"%s() received an invalid keyword %r\" % (\n cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n return self.dispatch(request, *args, **kwargs)\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 30 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 171, - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 57 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 150, - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(**kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s' % self.request.path,\n extra={\n 'status_code': 410,\n 'request': self.request\n })\n return http.HttpResponseGone()\n", - "name": "get", - "docstring": "", "klass": [ - "RedirectView", + "View", "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n allowed_methods = [m for m in self.http_method_names if hasattr(self, m)]\n logger.warning('Method Not Allowed (%s): %s' % (request.method, request.path),\n extra={\n 'status_code': 405,\n 'request': self.request\n }\n )\n return http.HttpResponseNotAllowed(allowed_methods)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 70 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 115, - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty and len(self.object_list) == 0:\n raise Http404(_(u\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data(object_list=self.object_list)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseListView", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.iteritems():\n setattr(self, key, value)\n", + "kwargs": "self, **kwargs", + "line_number": 20 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 68, - "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "name": "get_allow_empty", - "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, 'year')\n if date_list:\n object_list = qs.order_by('-' + self.get_date_field())\n else:\n object_list = qs.none()\n return (date_list, object_list, {})\n", + "kwargs": "self", + "line_number": 238 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 157, - "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", - "name": "get_allow_future", - "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", "klass": [ - "DateMixin", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n qs = self.get_queryset()\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(u\"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n date_field = self.get_date_field()\n field = qs.model._meta.get_field(date_field)\n lookup = _date_lookup_for_field(field, date)\n qs = qs.filter(**lookup)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 452 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 116, - "code": "def get_context_data(self, **kwargs):\n return {\n 'params': kwargs\n }\n", - "name": "get_context_data", - "docstring": "", "klass": [ - "TemplateView", - "django.views.generic.base", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 171 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 220, - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context. Must return a Context (or subclass) instance.\n \"\"\"\n items = kwargs.pop('object_list')\n context = super(BaseDateListView, self).get_context_data(object_list=items)\n context.update(kwargs)\n return context\n", - "name": "get_context_data", - "docstring": "Get the context. Must return a Context (or subclass) instance.", "klass": [ "BaseDateListView", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Get the context. Must return a Context (or subclass) instance.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context. Must return a Context (or subclass) instance.\n \"\"\"\n items = kwargs.pop('object_list')\n context = super(BaseDateListView, self).get_context_data(object_list=items)\n context.update(kwargs)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 220 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 48, - "code": "def get_context_data(self, **kwargs):\n return kwargs\n", - "name": "get_context_data", - "docstring": "", "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Obtain the list of dates and itesm", + "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and itesm\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", + "kwargs": "self", + "line_number": 178 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 115, - "code": "def get_context_data(self, **kwargs):\n context = kwargs\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n return context\n", - "name": "get_context_data", - "docstring": "", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n if not allow_future:\n qs = qs.filter(**{'%s__lte' % date_field: datetime.datetime.now()})\n if not allow_empty and not qs:\n raise Http404(_(u\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_unicode(qs.model._meta.verbose_name_plural)\n })\n return qs\n", + "kwargs": "self, **lookup", + "line_number": 184 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 88, - "code": "def get_context_data(self, **kwargs):\n context = kwargs\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n return context\n", - "name": "get_context_data", - "docstring": "", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates()`, checking along the way\nfor empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type):\n \"\"\"\n Get a date list by calling `queryset.dates()`, checking along the way\n for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n date_list = queryset.dates(date_field, date_type)[::-1]\n if date_list is not None and not date_list and not allow_empty:\n name = force_unicode(queryset.model._meta.verbose_name_plural)\n raise Http404(_(u\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", + "kwargs": "self, queryset, date_type", + "line_number": 204 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 86, - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list')\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n context.update(kwargs)\n if context_object_name is not None:\n context[context_object_name] = queryset\n return context\n", - "name": "get_context_data", - "docstring": "Get the context for this view.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n date_field = self.get_date_field()\n field = self.get_queryset().model._meta.get_field(date_field)\n lookup_kwargs = _date_lookup_for_field(field, date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 400 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 75, - "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return smart_str('%s_list' % object_list.model._meta.object_name.lower())\n else:\n return None\n", - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self, object_list" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", + "kwargs": "self", + "line_number": 386 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 77, - "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(obj, '_meta'):\n return smart_str(obj._meta.object_name.lower())\n else:\n return None\n", - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self, obj" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n # Construct a date-range lookup.\n first_day, last_day = _month_bounds(date)\n lookup_kwargs = {\n '%s__gte' % date_field: first_day,\n '%s__lt' % date_field: last_day,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs, 'day')\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", + "kwargs": "self", + "line_number": 305 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 400, - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n date_field = self.get_date_field()\n field = self.get_queryset().model._meta.get_field(date_field)\n lookup_kwargs = _date_lookup_for_field(field, date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", "klass": [ - "BaseDayArchiveView", + "BaseTodayArchiveView", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", + "kwargs": "self", + "line_number": 433 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 238, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, 'year')\n if date_list:\n object_list = qs.order_by('-' + self.get_date_field())\n else:\n object_list = qs.none()\n return (date_list, object_list, {})\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseArchiveIndexView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n # Construct a date-range lookup.\n first_day = date\n last_day = date + datetime.timedelta(days=7)\n lookup_kwargs = {\n '%s__gte' % date_field: first_day,\n '%s__lt' % date_field: last_day,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {'week': date})\n", + "kwargs": "self", + "line_number": 345 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 266, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n # Yes, no error checking: the URLpattern ought to validate this; it's\n # an error if it doesn't.\n year = self.get_year()\n date_field = self.get_date_field()\n qs = self.get_dated_queryset(**{date_field+'__year': year})\n date_list = self.get_date_list(qs, 'month')\n if self.get_make_object_list():\n object_list = qs.order_by('-'+date_field)\n else:\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n object_list = qs.none()\n return (date_list, object_list, {'year': year})\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n # Yes, no error checking: the URLpattern ought to validate this; it's\n # an error if it doesn't.\n year = self.get_year()\n date_field = self.get_date_field()\n qs = self.get_dated_queryset(**{date_field+'__year': year})\n date_list = self.get_date_list(qs, 'month')\n if self.get_make_object_list():\n object_list = qs.order_by('-'+date_field)\n else:\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n object_list = qs.none()\n return (date_list, object_list, {'year': year})\n", + "kwargs": "self", + "line_number": 266 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 345, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n # Construct a date-range lookup.\n first_day = date\n last_day = date + datetime.timedelta(days=7)\n lookup_kwargs = {\n '%s__gte' % date_field: first_day,\n '%s__lt' % date_field: last_day,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {'week': date})\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseWeekArchiveView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", + "kwargs": "self", + "line_number": 286 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 433, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseTodayArchiveView", + "DateMixin", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_allow_future", + "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", + "kwargs": "self", + "line_number": 157 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 305, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n # Construct a date-range lookup.\n first_day, last_day = _month_bounds(date)\n lookup_kwargs = {\n '%s__gte' % date_field: first_day,\n '%s__lt' % date_field: last_day,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs, 'day')\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseMonthArchiveView", + "DateMixin", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(u\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", + "kwargs": "self", + "line_number": 149 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 386, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseDayArchiveView", + "DayMixin", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_day", + "docstring": "Return the day for which this view should display data", + "code": "def get_day(self):\n \"Return the day for which this view should display data\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(u\"No day specified\"))\n return day\n", + "kwargs": "self", + "line_number": 89 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 178, - "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and itesm\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", - "name": "get_dated_items", - "docstring": "Obtain the list of dates and itesm", "klass": [ - "BaseDateListView", + "DayMixin", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", + "kwargs": "self", + "line_number": 82 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 184, - "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n if not allow_future:\n qs = qs.filter(**{'%s__lte' % date_field: datetime.datetime.now()})\n if not allow_empty and not qs:\n raise Http404(_(u\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_unicode(qs.model._meta.verbose_name_plural)\n })\n return qs\n", - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", "klass": [ - "BaseDateListView", + "DayMixin", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self, **lookup" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n next = date + datetime.timedelta(days=1)\n return _get_next_prev_month(self, next, is_previous=False, use_first_day=False)\n", + "kwargs": "self, date", + "line_number": 102 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 149, - "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(u\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", "klass": [ - "DateMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n prev = date - datetime.timedelta(days=1)\n return _get_next_prev_month(self, prev, is_previous=True, use_first_day=False)\n", + "kwargs": "self, date", + "line_number": 109 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 204, - "code": "def get_date_list(self, queryset, date_type):\n \"\"\"\n Get a date list by calling `queryset.dates()`, checking along the way\n for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n date_list = queryset.dates(date_field, date_type)[::-1]\n if date_list is not None and not date_list and not allow_empty:\n name = force_unicode(queryset.model._meta.verbose_name_plural)\n raise Http404(_(u\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates()`, checking along the way\nfor empty lists that aren't allowed.", "klass": [ - "BaseDateListView", + "MonthMixin", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self, queryset, date_type" - }, - "model": "cbv.method", - "pk": null + "name": "get_month", + "docstring": "Return the month for which this view should display data", + "code": "def get_month(self):\n \"Return the month for which this view should display data\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(u\"No month specified\"))\n return month\n", + "kwargs": "self", + "line_number": 48 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 89, - "code": "def get_day(self):\n \"Return the day for which this view should display data\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(u\"No day specified\"))\n return day\n", - "name": "get_day", - "docstring": "Return the day for which this view should display data", "klass": [ - "DayMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "kwargs": "self", + "line_number": 41 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 82, - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", "klass": [ - "DayMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n first_day, last_day = _month_bounds(date)\n next = (last_day + datetime.timedelta(days=1)).replace(day=1)\n return _get_next_prev_month(self, next, is_previous=False, use_first_day=True)\n", + "kwargs": "self, date", + "line_number": 61 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 30, - "code": "def get_form(self, form_class):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n return form_class(**self.get_form_kwargs())\n", - "name": "get_form", - "docstring": "Returns an instance of the form to be used in this view.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self, form_class" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n first_day, last_day = _month_bounds(date)\n prev = (first_day - datetime.timedelta(days=1))\n return _get_next_prev_month(self, prev, is_previous=True, use_first_day=True)\n", + "kwargs": "self, date", + "line_number": 69 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 71, - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n return model_forms.modelform_factory(model)\n", - "name": "get_form_class", - "docstring": "Returns the form class to use in this view", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "WeekMixin", + "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_week", + "docstring": "Return the week for which this view should display data", + "code": "def get_week(self):\n \"Return the week for which this view should display data\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(u\"No week specified\"))\n return week\n", + "kwargs": "self", + "line_number": 128 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 24, - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", - "name": "get_form_class", - "docstring": "Returns the form class to use in this view", "klass": [ - "FormMixin", - "django.views.generic.edit", + "WeekMixin", + "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "kwargs": "self", + "line_number": 121 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 36, - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instanciating the form.\n \"\"\"\n kwargs = {'initial': self.get_initial()}\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instanciating the form.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_year", + "docstring": "Return the year for which this view should display data", + "code": "def get_year(self):\n \"Return the year for which this view should display data\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(u\"No year specified\"))\n return year\n", + "kwargs": "self", + "line_number": 23 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 91, - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instanciating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n kwargs.update({'instance': self.object})\n return kwargs\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instanciating the form.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", + "kwargs": "self", + "line_number": 16 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 18, - "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial\n", - "name": "get_initial", - "docstring": "Returns the initial data to use for forms on this view.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, **kwargs", + "line_number": 97 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 286, - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = kwargs\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 88 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 48, - "code": "def get_month(self):\n \"Return the month for which this view should display data\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(u\"No month specified\"))\n return month\n", - "name": "get_month", - "docstring": "Return the month for which this view should display data", "klass": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(obj, '_meta'):\n return smart_str(obj._meta.object_name.lower())\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 77 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 41, - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", "klass": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_object", + "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get('pk', None)\n slug = self.kwargs.get('slug', None)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n elif slug is not None:\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n else:\n raise AttributeError(u\"Generic detail view %s must be called with \"\n u\"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n obj = queryset.get()\n except ObjectDoesNotExist:\n raise Http404(_(u\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 19 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 102, - "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n next = date + datetime.timedelta(days=1)\n return _get_next_prev_month(self, next, is_previous=False, use_first_day=False)\n", - "name": "get_next_day", - "docstring": "Get the next valid day.", "klass": [ - "DayMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.3" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_queryset", + "docstring": "Get the queryset to look an object up against. May not be called if\n`get_object` is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Get the queryset to look an object up against. May not be called if\n `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(u\"%(cls)s is missing a queryset. Define \"\n u\"%(cls)s.model, %(cls)s.queryset, or override \"\n u\"%(cls)s.get_object().\" % {\n 'cls': self.__class__.__name__\n })\n return self.queryset._clone()\n", + "kwargs": "self", + "line_number": 55 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 61, - "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n first_day, last_day = _month_bounds(date)\n next = (last_day + datetime.timedelta(days=1)).replace(day=1)\n return _get_next_prev_month(self, next, is_previous=False, use_first_day=True)\n", - "name": "get_next_month", - "docstring": "Get the next valid month.", "klass": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.3" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", + "kwargs": "self", + "line_number": 71 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 452, - "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n qs = self.get_queryset()\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(u\"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n date_field = self.get_date_field()\n field = qs.model._meta.get_field(date_field)\n lookup = _date_lookup_for_field(field, date)\n qs = qs.filter(**lookup)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", - "name": "get_object", - "docstring": "Get the object this request displays.", "klass": [ - "BaseDateDetailView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.3" ], - "kwargs": "self, queryset=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if get_template is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if get_template is overridden.\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if hasattr(self.object, '_meta'):\n names.append(\"%s/%s%s.html\" % (\n self.object._meta.app_label,\n self.object._meta.object_name.lower(),\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and hasattr(self.model, '_meta'):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.object_name.lower(),\n self.template_name_suffix\n ))\n return names\n", + "kwargs": "self", + "line_number": 107 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 19, - "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get('pk', None)\n slug = self.kwargs.get('slug', None)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n elif slug is not None:\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n else:\n raise AttributeError(u\"Generic detail view %s must be called with \"\n u\"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n obj = queryset.get()\n except ObjectDoesNotExist:\n raise Http404(_(u\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "name": "get_object", - "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self, queryset=None" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 166 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 56, - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self, queryset" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 170 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 62, - "code": "def get_paginator(self, queryset, per_page, orphans=0, allow_empty_first_page=True):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(queryset, per_page, orphans=orphans, allow_empty_first_page=allow_empty_first_page)\n", - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 189 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 109, - "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n prev = date - datetime.timedelta(days=1)\n return _get_next_prev_month(self, prev, is_previous=True, use_first_day=False)\n", - "name": "get_previous_day", - "docstring": "Get the previous valid day.", "klass": [ - "DayMixin", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 193 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 69, - "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n first_day, last_day = _month_bounds(date)\n prev = (first_day - datetime.timedelta(days=1))\n return _get_next_prev_month(self, prev, is_previous=True, use_first_day=True)\n", - "name": "get_previous_month", - "docstring": "Get the previous valid month.", "klass": [ - "MonthMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "delete", + "docstring": "", + "code": "def delete(self, request, *args, **kwargs):\n self.object = self.get_object()\n self.object.delete()\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 212 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 19, - "code": "def get_queryset(self):\n \"\"\"\n Get the list of items for this view. This must be an interable, and may\n be a queryset (in which qs-specific behavior will be enabled).\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if hasattr(queryset, '_clone'):\n queryset = queryset._clone()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(u\"'%s' must define 'queryset' or 'model'\"\n % self.__class__.__name__)\n return queryset\n", - "name": "get_queryset", - "docstring": "Get the list of items for this view. This must be an interable, and may\nbe a queryset (in which qs-specific behavior will be enabled).", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", + "kwargs": "self", + "line_number": 221 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 55, - "code": "def get_queryset(self):\n \"\"\"\n Get the queryset to look an object up against. May not be called if\n `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(u\"%(cls)s is missing a queryset. Define \"\n u\"%(cls)s.model, %(cls)s.queryset, or override \"\n u\"%(cls)s.get_object().\" % {\n 'cls': self.__class__.__name__\n })\n return self.queryset._clone()\n", - "name": "get_queryset", - "docstring": "Get the queryset to look an object up against. May not be called if\n`get_object` is overridden.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, *args, **kwargs):\n return self.delete(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 218 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 134, - "code": "def get_redirect_url(self, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n args = self.request.META[\"QUERY_STRING\"]\n if args and self.query_string:\n url = \"%s?%s\" % (self.url, args)\n else:\n url = self.url\n return url % kwargs\n else:\n return None\n", - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "form_invalid", + "docstring": "", + "code": "def form_invalid(self, form):\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 62 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 71, - "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "FormMixin", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "form_valid", + "docstring": "", + "code": "def form_valid(self, form):\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 59 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 51, - "code": "def get_success_url(self):\n if self.success_url:\n url = self.success_url\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", - "name": "get_success_url", - "docstring": "", "klass": [ "FormMixin", "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n return kwargs\n", + "kwargs": "self, **kwargs", + "line_number": 48 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 221, - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", - "name": "get_success_url", - "docstring": "", "klass": [ - "DeletionMixin", + "FormMixin", "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form", + "docstring": "Returns an instance of the form to be used in this view.", + "code": "def get_form(self, form_class):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class", + "line_number": 30 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 99, - "code": "def get_success_url(self):\n if self.success_url:\n url = self.success_url % self.object.__dict__\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", - "name": "get_success_url", - "docstring": "", "klass": [ - "ModelFormMixin", + "FormMixin", "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_class", + "docstring": "Returns the form class to use in this view", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", + "kwargs": "self", + "line_number": 24 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 128, - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if get_template is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.object_name.lower(), self.template_name_suffix))\n return names\n", - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if get_template is overridden.", "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instanciating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instanciating the form.\n \"\"\"\n kwargs = {'initial': self.get_initial()}\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "kwargs": "self", + "line_number": 36 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 107, - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if get_template is overridden.\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if hasattr(self.object, '_meta'):\n names.append(\"%s/%s%s.html\" % (\n self.object._meta.app_label,\n self.object._meta.object_name.lower(),\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and hasattr(self.model, '_meta'):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.object_name.lower(),\n self.template_name_suffix\n ))\n return names\n", - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if get_template is overridden.", "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormMixin", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_initial", + "docstring": "Returns the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial\n", + "kwargs": "self", + "line_number": 18 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 99, - "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "name": "get_template_names", - "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n url = self.success_url\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", + "kwargs": "self", + "line_number": 51 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 128, - "code": "def get_week(self):\n \"Return the week for which this view should display data\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(u\"No week specified\"))\n return week\n", - "name": "get_week", - "docstring": "Return the week for which this view should display data", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "form_valid", + "docstring": "", + "code": "def form_valid(self, form):\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", + "kwargs": "self, form", + "line_number": 111 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 121, - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = kwargs\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 115 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 23, - "code": "def get_year(self):\n \"Return the year for which this view should display data\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(u\"No year specified\"))\n return year\n", - "name": "get_year", - "docstring": "Return the year for which this view should display data", "klass": [ - "YearMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_class", + "docstring": "Returns the form class to use in this view", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n return model_forms.modelform_factory(model)\n", + "kwargs": "self", + "line_number": 71 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 16, - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", "klass": [ - "YearMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instanciating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instanciating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 91 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 165, - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "head", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n url = self.success_url % self.object.__dict__\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 99 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 70, - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n allowed_methods = [m for m in self.http_method_names if hasattr(self, m)]\n logger.warning('Method Not Allowed (%s): %s' % (request.method, request.path),\n extra={\n 'status_code': 405,\n 'request': self.request\n }\n )\n return http.HttpResponseNotAllowed(allowed_methods)\n", - "name": "http_method_not_allowed", - "docstring": "", "klass": [ - "View", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 129 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 20, - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.iteritems():\n setattr(self, key, value)\n", - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", "klass": [ - "View", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 134 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 171, - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "options", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "put", + "docstring": "", + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 144 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 35, - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(queryset, page_size, allow_empty_first_page=self.get_allow_empty())\n page = self.kwargs.get('page') or self.request.GET.get('page') or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(u\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage:\n raise Http404(_(u'Invalid page (%(page_number)s)') % {\n 'page_number': page_number\n })\n", - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", "klass": [ - "MultipleObjectMixin", + "BaseListView", "django.views.generic.list", "Django", "1.3" ], - "kwargs": "self, queryset, page_size" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty and len(self.object_list) == 0:\n raise Http404(_(u\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data(object_list=self.object_list)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 115 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 218, - "code": "def post(self, *args, **kwargs):\n return self.delete(*args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.3" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_allow_empty", + "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 68 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 134, - "code": "def post(self, request, *args, **kwargs):\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "name": "post", - "docstring": "", "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list')\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n context.update(kwargs)\n if context_object_name is not None:\n context[context_object_name] = queryset\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 86 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 193, - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return smart_str('%s_list' % object_list.model._meta.object_name.lower())\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 75 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 170, - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 56 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 168, - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0, allow_empty_first_page=True):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(queryset, per_page, orphans=orphans, allow_empty_first_page=allow_empty_first_page)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True", + "line_number": 62 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 177, - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "put", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.3" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_queryset", + "docstring": "Get the list of items for this view. This must be an interable, and may\nbe a queryset (in which qs-specific behavior will be enabled).", + "code": "def get_queryset(self):\n \"\"\"\n Get the list of items for this view. This must be an interable, and may\n be a queryset (in which qs-specific behavior will be enabled).\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if hasattr(queryset, '_clone'):\n queryset = queryset._clone()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(u\"'%s' must define 'queryset' or 'model'\"\n % self.__class__.__name__)\n return queryset\n", + "kwargs": "self", + "line_number": 19 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 144, - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "name": "put", - "docstring": "", "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.3" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(queryset, page_size, allow_empty_first_page=self.get_allow_empty())\n page = self.kwargs.get('page') or self.request.GET.get('page') or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(u\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage:\n raise Http404(_(u'Invalid page (%(page_number)s)') % {\n 'page_number': page_number\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 35 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 88, - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response with a template rendered with the given context.\n \"\"\"\n return self.response_class(\n request = self.request,\n template = self.get_template_names(),\n context = context,\n **response_kwargs\n )\n", - "name": "render_to_response", - "docstring": "Returns a response with a template rendered with the given context.", "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.3" ], - "kwargs": "self, context, **response_kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if get_template is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if get_template is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.object_name.lower(), self.template_name_suffix))\n return names\n", + "kwargs": "self", + "line_number": 128 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "1.3" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.3" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ "View", "django.views.generic.base", @@ -3120,170 +3069,170 @@ "1.3" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.3" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "CreateView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "DateDetailView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "DetailView", - "django.views.generic.detail", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "View", - "django.views.generic.base", + "DateMixin", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "RedirectView", - "django.views.generic.base", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 3 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.3" ], "child": [ - "YearArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 4 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ "MultipleObjectMixin", "django.views.generic.list", @@ -3295,337 +3244,337 @@ "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DateMixin", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "1.3" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "TodayArchiveView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 3 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "FormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "FormMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "TemplateView", - "django.views.generic.base", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "WeekMixin", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "FormView", - "django.views.generic.edit", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "1.3" ], "child": [ - "BaseDayArchiveView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "ArchiveIndexView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "1.3" ], "child": [ - "BaseDateDetailView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.3" ], "child": [ - "BaseTodayArchiveView", + "DateDetailView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.3" ], "child": [ - "BaseYearArchiveView", + "DateDetailView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ "MultipleObjectTemplateResponseMixin", "django.views.generic.list", @@ -3637,511 +3586,511 @@ "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "BaseDateListView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.3" ], "child": [ - "BaseArchiveIndexView", + "DayArchiveView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.3" ], "child": [ - "BaseMonthArchiveView", + "MonthArchiveView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "WeekArchiveView", + "MonthArchiveView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.3" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "View", - "django.views.generic.base", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.3" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.3" ], "child": [ - "BaseListView", - "django.views.generic.list", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "WeekMixin", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.3" ], "child": [ - "BaseWeekArchiveView", + "WeekArchiveView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.3" ], "child": [ - "BaseDayArchiveView", + "YearArchiveView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.3" ], "child": [ - "BaseDateDetailView", + "YearArchiveView", "django.views.generic.dates", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.3" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "DateMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.3" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.3" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.3" ], "child": [ - "WeekArchiveView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.3" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.3" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.3" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.3" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.3" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.3" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "View", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.3" ], "child": [ - "TemplateView", - "django.views.generic.base", + "BaseFormView", + "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.3" ], "child": [ - "BaseDeleteView", + "BaseUpdateView", "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.3" ], "child": [ - "DetailView", - "django.views.generic.detail", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.3" ], "child": [ - "BaseCreateView", + "CreateView", "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", + "BaseCreateView", "django.views.generic.edit", "Django", "1.3" ], "child": [ - "BaseFormView", + "CreateView", "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.3" ], "child": [ - "BaseUpdateView", + "DeleteView", "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseUpdateView", + "BaseDeleteView", "django.views.generic.edit", "Django", "1.3" ], "child": [ - "UpdateView", + "DeleteView", "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseFormView", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.3" ], @@ -4150,147 +4099,147 @@ "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDeleteView", + "BaseFormView", "django.views.generic.edit", "Django", "1.3" ], "child": [ - "DeleteView", + "FormView", "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseCreateView", + "FormMixin", "django.views.generic.edit", "Django", "1.3" ], "child": [ - "CreateView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseListView", - "django.views.generic.list", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.3" ], "child": [ - "ListView", - "django.views.generic.list", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.3" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.3" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "DayMixin", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.3" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "DayMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.3" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ "View", "django.views.generic.base", @@ -4298,70 +4247,69 @@ "1.3" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 3, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.3" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 3, "parent": [ - "DateMixin", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.3" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 4, "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.3" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.3" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } } ] diff --git a/cbv/fixtures/1.4.json b/cbv/fixtures/1.4.json index e24513ea..66fc4df9 100644 --- a/cbv/fixtures/1.4.json +++ b/cbv/fixtures/1.4.json @@ -1,4454 +1,4395 @@ [ { + "model": "cbv.projectversion", "fields": { "project": [ "Django" ], "version_number": "1.4", "sortable_version_number": "0104" - }, - "model": "cbv.projectversion", - "pk": null + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.4" ], + "name": "django.contrib.formtools.wizard.views", "docstring": "", - "name": "django.views.generic", - "filename": "/django/views/generic/__init__.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/contrib/formtools/wizard/views.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.4" ], + "name": "django.views.generic", "docstring": "", - "name": "django.views.generic.base", - "filename": "/django/views/generic/base.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/__init__.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.4" ], + "name": "django.views.generic.base", "docstring": "", - "name": "django.views.generic.dates", - "filename": "/django/views/generic/dates.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/base.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.4" ], + "name": "django.views.generic.dates", "docstring": "", - "name": "django.views.generic.detail", - "filename": "/django/views/generic/detail.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/dates.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.4" ], + "name": "django.views.generic.detail", "docstring": "", - "name": "django.views.generic.edit", - "filename": "/django/views/generic/edit.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/detail.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.4" ], + "name": "django.views.generic.edit", "docstring": "", - "name": "django.views.generic.list", - "filename": "/django/views/generic/list.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/edit.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.4" ], + "name": "django.views.generic.list", "docstring": "", - "name": "django.contrib.formtools.wizard.views", - "filename": "/django/contrib/formtools/wizard/views.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/list.py" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 564, - "name": "CookieWizardView", - "docs_url": "", - "docstring": "A WizardView with pre-configured CookieStorage backend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "CookieWizardView", + "docstring": "A WizardView with pre-configured CookieStorage backend.", + "line_number": 564, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 698, - "name": "NamedUrlCookieWizardView", - "docs_url": "", - "docstring": "A NamedUrlFormWizard with pre-configured CookieStorageBackend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "NamedUrlCookieWizardView", + "docstring": "A NamedUrlFormWizard with pre-configured CookieStorageBackend.", + "line_number": 698, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 691, - "name": "NamedUrlSessionWizardView", - "docs_url": "", - "docstring": "A NamedUrlWizardView with pre-configured SessionStorage backend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "NamedUrlSessionWizardView", + "docstring": "A NamedUrlWizardView with pre-configured SessionStorage backend.", + "line_number": 691, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 571, - "name": "NamedUrlWizardView", - "docs_url": "", - "docstring": "A WizardView with URL named steps support.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "NamedUrlWizardView", + "docstring": "A WizardView with URL named steps support.", + "line_number": 571, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 557, - "name": "SessionWizardView", - "docs_url": "", - "docstring": "A WizardView with pre-configured SessionStorage backend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "SessionWizardView", + "docstring": "A WizardView with pre-configured SessionStorage backend.", + "line_number": 557, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 29, - "name": "StepsHelper", - "docs_url": "", - "docstring": "", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "StepsHelper", + "docstring": "", + "line_number": 29, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 95, - "name": "WizardView", - "docs_url": "", - "docstring": "The WizardView is used to create multi-page forms and handles all the\nstorage and validation stuff. The wizard is based on Django's generic\nclass based views.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "WizardView", + "docstring": "The WizardView is used to create multi-page forms and handles all the\nstorage and validation stuff. The wizard is based on Django's generic\nclass based views.", + "line_number": 95, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 10, - "name": "GenericViewError", - "docs_url": "", - "docstring": "A problem in a generic view.", "module": [ "django.views.generic", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "GenericViewError", + "docstring": "A problem in a generic view.", + "line_number": 10, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 127, - "name": "RedirectView", - "docs_url": "", - "docstring": "A view that provides a redirect on any GET request.", "module": [ "django.views.generic.base", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "RedirectView", + "docstring": "A view that provides a redirect on any GET request.", + "line_number": 127, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 82, - "name": "TemplateResponseMixin", - "docs_url": "", - "docstring": "A mixin that can be used to render a template.", "module": [ "django.views.generic.base", "Django", "1.4" ], - "import_path": "django.views.generic.base" - }, - "model": "cbv.klass", - "pk": null + "name": "TemplateResponseMixin", + "docstring": "A mixin that can be used to render a template.", + "line_number": 82, + "import_path": "django.views.generic.base", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 113, - "name": "TemplateView", - "docs_url": "", - "docstring": "A view that renders a template.", "module": [ "django.views.generic.base", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "TemplateView", + "docstring": "A view that renders a template.", + "line_number": 113, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 11, - "name": "View", - "docs_url": "", - "docstring": "Intentionally simple parent class for all views. Only implements\ndispatch-by-method and simple sanity checking.", "module": [ "django.views.generic.base", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "View", + "docstring": "Intentionally simple parent class for all views. Only implements\ndispatch-by-method and simple sanity checking.", + "line_number": 11, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 253, - "name": "ArchiveIndexView", - "docs_url": "", - "docstring": "Top-level archive of date-based items.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "ArchiveIndexView", + "docstring": "Top-level archive of date-based items.", + "line_number": 253, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 230, - "name": "BaseArchiveIndexView", - "docs_url": "", - "docstring": "Base class for archives of date-based items.\n\nRequires a response mixin.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseArchiveIndexView", + "docstring": "Base class for archives of date-based items.\n\nRequires a response mixin.", + "line_number": 230, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 447, - "name": "BaseDateDetailView", - "docs_url": "", - "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDateDetailView", + "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", + "line_number": 447, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 165, - "name": "BaseDateListView", - "docs_url": "", - "docstring": "Abstract base class for date-based views display a list of objects.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDateListView", + "docstring": "Abstract base class for date-based views display a list of objects.", + "line_number": 165, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 382, - "name": "BaseDayArchiveView", - "docs_url": "", - "docstring": "List of objects published on a given day.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDayArchiveView", + "docstring": "List of objects published on a given day.", + "line_number": 382, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 301, - "name": "BaseMonthArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseMonthArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 301, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 428, - "name": "BaseTodayArchiveView", - "docs_url": "", - "docstring": "List of objects published today.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseTodayArchiveView", + "docstring": "List of objects published today.", + "line_number": 428, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 340, - "name": "BaseWeekArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given week.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseWeekArchiveView", + "docstring": "List of objects published in a given week.", + "line_number": 340, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 260, - "name": "BaseYearArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseYearArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 260, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 483, - "name": "DateDetailView", - "docs_url": "", - "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DateDetailView", + "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", + "line_number": 483, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 142, - "name": "DateMixin", - "docs_url": "", - "docstring": "Mixin class for views manipulating date-based data.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "DateMixin", + "docstring": "Mixin class for views manipulating date-based data.", + "line_number": 142, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 421, - "name": "DayArchiveView", - "docs_url": "", - "docstring": "List of objects published on a given day.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DayArchiveView", + "docstring": "List of objects published on a given day.", + "line_number": 421, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 78, - "name": "DayMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "DayMixin", + "docstring": "", + "line_number": 78, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 333, - "name": "MonthArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "MonthArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 333, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 37, - "name": "MonthMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "MonthMixin", + "docstring": "", + "line_number": 37, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 440, - "name": "TodayArchiveView", - "docs_url": "", - "docstring": "List of objects published today.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "TodayArchiveView", + "docstring": "List of objects published today.", + "line_number": 440, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 375, - "name": "WeekArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given week.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "WeekArchiveView", + "docstring": "List of objects published in a given week.", + "line_number": 375, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 117, - "name": "WeekMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "WeekMixin", + "docstring": "", + "line_number": 117, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 294, - "name": "YearArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "YearArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 294, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 12, - "name": "YearMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.dates", "Django", "1.4" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "YearMixin", + "docstring": "", + "line_number": 12, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 96, - "name": "BaseDetailView", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.detail", "Django", "1.4" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDetailView", + "docstring": "", + "line_number": 96, + "import_path": "django.views.generic.detail", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 144, - "name": "DetailView", - "docs_url": "", - "docstring": "Render a \"detail\" view of an object.\n\nBy default this is a model instance looked up from `self.queryset`, but the\nview will support display of *any* object by overriding `self.get_object()`.", "module": [ "django.views.generic.detail", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DetailView", + "docstring": "Render a \"detail\" view of an object.\n\nBy default this is a model instance looked up from `self.queryset`, but the\nview will support display of *any* object by overriding `self.get_object()`.", + "line_number": 144, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 8, - "name": "SingleObjectMixin", - "docs_url": "", - "docstring": "Provides the ability to retrieve a single object for further manipulation.", "module": [ "django.views.generic.detail", "Django", "1.4" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "SingleObjectMixin", + "docstring": "Provides the ability to retrieve a single object for further manipulation.", + "line_number": 8, + "import_path": "django.views.generic.detail", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 103, - "name": "SingleObjectTemplateResponseMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.detail", "Django", "1.4" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "SingleObjectTemplateResponseMixin", + "docstring": "", + "line_number": 103, + "import_path": "django.views.generic.detail", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 160, - "name": "BaseCreateView", - "docs_url": "", - "docstring": "Base view for creating an new object instance.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.4" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseCreateView", + "docstring": "Base view for creating an new object instance.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 160, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 229, - "name": "BaseDeleteView", - "docs_url": "", - "docstring": "Base view for deleting an object.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.4" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDeleteView", + "docstring": "Base view for deleting an object.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 229, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 148, - "name": "BaseFormView", - "docs_url": "", - "docstring": "A base view for displaying a form", "module": [ "django.views.generic.edit", "Django", "1.4" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseFormView", + "docstring": "A base view for displaying a form", + "line_number": 148, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 183, - "name": "BaseUpdateView", - "docs_url": "", - "docstring": "Base view for updating an existing object.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.4" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseUpdateView", + "docstring": "Base view for updating an existing object.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 183, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 175, - "name": "CreateView", - "docs_url": "", - "docstring": "View for creating an new object instance,\nwith a response rendered by template.", "module": [ "django.views.generic.edit", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "CreateView", + "docstring": "View for creating an new object instance,\nwith a response rendered by template.", + "line_number": 175, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 237, - "name": "DeleteView", - "docs_url": "", - "docstring": "View for deleting an object retrieved with `self.get_object()`,\nwith a response rendered by template.", "module": [ "django.views.generic.edit", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DeleteView", + "docstring": "View for deleting an object retrieved with `self.get_object()`,\nwith a response rendered by template.", + "line_number": 237, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 206, - "name": "DeletionMixin", - "docs_url": "", - "docstring": "A mixin providing the ability to delete objects", "module": [ "django.views.generic.edit", "Django", "1.4" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "DeletionMixin", + "docstring": "A mixin providing the ability to delete objects", + "line_number": 206, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 9, - "name": "FormMixin", - "docs_url": "", - "docstring": "A mixin that provides a way to show and handle a form in a request.", "module": [ "django.views.generic.edit", "Django", "1.4" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "FormMixin", + "docstring": "A mixin that provides a way to show and handle a form in a request.", + "line_number": 9, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 154, - "name": "FormView", - "docs_url": "", - "docstring": "A view for displaying a form, and rendering a template response.", "module": [ "django.views.generic.edit", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "FormView", + "docstring": "A view for displaying a form, and rendering a template response.", + "line_number": 154, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 66, - "name": "ModelFormMixin", - "docs_url": "", - "docstring": "A mixin that provides a way to show and handle a modelform in a request.", "module": [ "django.views.generic.edit", "Django", "1.4" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "ModelFormMixin", + "docstring": "A mixin that provides a way to show and handle a modelform in a request.", + "line_number": 66, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 125, - "name": "ProcessFormView", - "docs_url": "", - "docstring": "A mixin that processes a form on POST.", "module": [ "django.views.generic.edit", "Django", "1.4" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "ProcessFormView", + "docstring": "A mixin that processes a form on POST.", + "line_number": 125, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 198, - "name": "UpdateView", - "docs_url": "", - "docstring": "View for updating an object,\nwith a response rendered by template..", "module": [ "django.views.generic.edit", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "UpdateView", + "docstring": "View for updating an object,\nwith a response rendered by template..", + "line_number": 198, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 112, - "name": "BaseListView", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.list", "Django", "1.4" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseListView", + "docstring": "", + "line_number": 112, + "import_path": "django.views.generic.list", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 149, - "name": "ListView", - "docs_url": "", - "docstring": "Render some list of objects, set by `self.model` or `self.queryset`.\n`self.queryset` can actually be any iterable of items, not just a queryset.", "module": [ "django.views.generic.list", "Django", "1.4" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "ListView", + "docstring": "Render some list of objects, set by `self.model` or `self.queryset`.\n`self.queryset` can actually be any iterable of items, not just a queryset.", + "line_number": 149, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 9, - "name": "MultipleObjectMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.list", "Django", "1.4" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "MultipleObjectMixin", + "docstring": "", + "line_number": 9, + "import_path": "django.views.generic.list", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 123, - "name": "MultipleObjectTemplateResponseMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.list", "Django", "1.4" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "MultipleObjectTemplateResponseMixin", + "docstring": "", + "line_number": 123, + "import_path": "django.views.generic.list", + "docs_url": "" + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", + "CookieWizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "", - "name": "all" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "NamedUrlCookieWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "False", - "name": "allow_empty" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "NamedUrlSessionWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "True", - "name": "allow_empty" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DateMixin", - "django.views.generic.dates", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "False", - "name": "allow_future" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "done_step_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "", - "name": "args" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "url_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", + "SessionWizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "None", - "name": "condition_dict" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "'latest'", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "all", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "None", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "count", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "None", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "current", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "StepsHelper", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "", - "name": "count" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "first", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "StepsHelper", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "", - "name": "current" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "index", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DateMixin", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "None", - "name": "date_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "last", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayMixin", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "None", - "name": "day" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "next", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayMixin", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "'%d'", - "name": "day_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "prev", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "", - "name": "__delattr__" - }, + "name": "step0", + "value": "", + "line_number": -1 + } +}, +{ "model": "cbv.klassattribute", - "pk": null + "pk": null, + "fields": { + "klass": [ + "StepsHelper", + "django.contrib.formtools.wizard.views", + "Django", + "1.4" + ], + "name": "step1", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlWizardView", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], + "name": "condition_dict", "value": "None", - "name": "done_step_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "", - "name": "first" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "form_list", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], + "name": "initial_dict", "value": "None", - "name": "form_class" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], + "name": "instance_dict", "value": "None", - "name": "form_list" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "", - "name": "__getattribute__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "", - "name": "__getitem__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name", + "value": "'formtools/wizard/wizard_form.html'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.4" ], - "value": "", - "name": "__getslice__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "args", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "View", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "1.4" ], - "value": "['get', 'post', 'put', 'delete', 'head', 'options', 'trace']", - "name": "http_method_names" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__delattr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.4" ], - "value": "", - "name": "index" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__getattribute__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.4" ], - "value": "", - "name": "__init__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__getitem__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.4" ], - "value": "{}", - "name": "initial" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__getslice__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.4" ], - "value": "None", - "name": "initial_dict" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__init__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.4" ], - "value": "None", - "name": "instance_dict" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "message", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.4" ], - "value": "", - "name": "last" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__reduce__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.4" ], - "value": "False", - "name": "make_object_list" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__repr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.4" ], - "value": "", - "name": "message" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__setattr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "1.4" ], - "value": "None", - "name": "model" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__setstate__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "1.4" ], - "value": "None", - "name": "model" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__str__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.4" ], - "value": "None", - "name": "month" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__unicode__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.4" ], - "value": "'%b'", - "name": "month_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "permanent", + "value": "True", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "RedirectView", + "django.views.generic.base", "Django", "1.4" ], - "value": "", - "name": "next" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "query_string", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "1.4" ], + "name": "url", "value": "None", - "name": "paginate_by" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": 12, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.4" ], - "value": "", - "name": "paginator_class" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "response_class", + "value": "", + "line_number": 136 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", + "TemplateResponseMixin", "django.views.generic.base", "Django", "1.4" ], - "value": "True", - "name": "permanent" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "1.4" ], - "value": "'pk'", - "name": "pk_url_kwarg" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "http_method_names", + "value": "['get', 'post', 'put', 'delete', 'head', 'options', 'trace']", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.4" ], - "value": "", - "name": "prev" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.4" ], - "value": "None", - "name": "queryset" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "context_object_name", + "value": "'latest'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.4" ], - "value": "None", - "name": "queryset" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "allow_empty", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.4" ], + "name": "make_object_list", "value": "False", - "name": "query_string" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DateMixin", + "django.views.generic.dates", "Django", "1.4" ], - "value": "", - "name": "__reduce__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "allow_future", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DateMixin", + "django.views.generic.dates", "Django", "1.4" ], - "value": "", - "name": "__repr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "date_field", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": 136, "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.4" ], - "value": "", - "name": "response_class" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_day'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DayMixin", + "django.views.generic.dates", "Django", "1.4" ], - "value": "", - "name": "__setattr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "day", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DayMixin", + "django.views.generic.dates", "Django", "1.4" ], - "value": "", - "name": "__setstate__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "day_format", + "value": "'%d'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.4" ], - "value": "'slug'", - "name": "slug_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_month'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.4" ], - "value": "'slug'", - "name": "slug_url_kwarg" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "month", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "MonthMixin", + "django.views.generic.dates", "Django", "1.4" ], - "value": "", - "name": "step0" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "month_format", + "value": "'%b'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.4" ], - "value": "", - "name": "step1" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_day'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "CookieWizardView", - "django.contrib.formtools.wizard.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.4" ], - "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_week'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.4" ], + "name": "week", "value": "None", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SessionWizardView", - "django.contrib.formtools.wizard.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.4" ], - "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "week_format", + "value": "'%U'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlSessionWizardView", - "django.contrib.formtools.wizard.views", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.4" ], - "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_year'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlCookieWizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.4" ], - "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "year", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "YearMixin", + "django.views.generic.dates", "Django", "1.4" ], - "value": "", - "name": "__str__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "year_format", + "value": "'%Y'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.4" ], + "name": "context_object_name", "value": "None", - "name": "success_url" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.4" ], + "name": "model", "value": "None", - "name": "success_url" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.4" ], - "value": "'formtools/wizard/wizard_form.html'", - "name": "template_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "pk_url_kwarg", + "value": "'pk'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.4" ], + "name": "queryset", "value": "None", - "name": "template_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "1.4" ], - "value": "None", - "name": "template_name_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "slug_field", + "value": "'slug'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.4" ], - "value": "'_archive_month'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "slug_url_kwarg", + "value": "'slug'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.4" ], - "value": "'_archive_week'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_field", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.4" ], - "value": "'_archive_year'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_detail'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "CreateView", "django.views.generic.edit", "Django", "1.4" ], + "name": "template_name_suffix", "value": "'_form'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "DeleteView", "django.views.generic.edit", "Django", "1.4" ], + "name": "template_name_suffix", "value": "'_confirm_delete'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.4" ], - "value": "'_detail'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "success_url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "UpdateView", + "FormMixin", "django.views.generic.edit", "Django", "1.4" ], - "value": "'_form'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "form_class", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.4" ], - "value": "'_archive'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "initial", + "value": "{}", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.4" ], - "value": "'_archive_day'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "success_url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.4" ], - "value": "'_archive_day'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_form'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectTemplateResponseMixin", + "MultipleObjectMixin", "django.views.generic.list", "Django", "1.4" ], - "value": "'_list'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "allow_empty", + "value": "True", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], - "value": "", - "name": "__unicode__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "context_object_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], + "name": "model", "value": "None", - "name": "url" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], + "name": "paginate_by", "value": "None", - "name": "url_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], - "value": "None", - "name": "week" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "paginator_class", + "value": "", + "line_number": 12 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], - "value": "'%U'", - "name": "week_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "queryset", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.4" ], - "value": "None", - "name": "year" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_list'", + "line_number": -1 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearMixin", - "django.views.generic.dates", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "value": "'%Y'", - "name": "year_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "get", + "docstring": "This renders the form or, if needed, does the http redirects.", + "code": "def get(self, *args, **kwargs):\n \"\"\"\n This renders the form or, if needed, does the http redirects.\n \"\"\"\n step_url = kwargs.get('step', None)\n if step_url is None:\n if 'reset' in self.request.GET:\n self.storage.reset()\n self.storage.current_step = self.steps.first\n if self.request.GET:\n query_string = \"?%s\" % self.request.GET.urlencode()\n else:\n query_string = \"\"\n return redirect(self.get_step_url(self.steps.current)\n + query_string)\n # is the current step the \"done\" name/view?\n elif step_url == self.done_step_name:\n last_step = self.steps.last\n return self.render_done(self.get_form(step=last_step,\n data=self.storage.get_step_data(last_step),\n files=self.storage.get_step_files(last_step)\n ), **kwargs)\n # is the url step name not equal to the step in the storage?\n # if yes, change the step in the storage (if name exists)\n elif step_url == self.steps.current:\n # URL step name and storage step name are equal, render!\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n elif step_url in self.get_form_list():\n self.storage.current_step = step_url\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n # invalid step name, reset to first and redirect.\n else:\n self.storage.current_step = self.steps.first\n return redirect(self.get_step_url(self.steps.first))\n", + "kwargs": "self, *args, **kwargs", + "line_number": 599 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 111, - "code": "@classonlymethod\ndef as_view(cls, *args, **kwargs):\n \"\"\"\n This method is used within urls.py to create unique wizardview\n instances for every request. We need to override this method because\n we add some kwargs which are needed to make the wizardview usable.\n \"\"\"\n initkwargs = cls.get_initkwargs(*args, **kwargs)\n return super(WizardView, cls).as_view(**initkwargs)\n", - "name": "as_view", - "docstring": "This method is used within urls.py to create unique wizardview\ninstances for every request. We need to override this method because\nwe add some kwargs which are needed to make the wizardview usable.", "klass": [ - "WizardView", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "cls, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "NamedUrlWizardView provides the url_name of this wizard in the context\ndict `wizard`.", + "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n NamedUrlWizardView provides the url_name of this wizard in the context\n dict `wizard`.\n \"\"\"\n context = super(NamedUrlWizardView, self).get_context_data(form=form, **kwargs)\n context['wizard']['url_name'] = self.url_name\n return context\n", + "kwargs": "self, form, **kwargs", + "line_number": 655 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 29, - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n # sanitize keyword arguments\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(u\"You tried to pass in the %s method name as a \"\n u\"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(u\"%s() received an invalid keyword %r\" % (\n cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n return self.dispatch(request, *args, **kwargs)\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "name": "as_view", - "docstring": "Main entry point for a request-response process.", "klass": [ - "View", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "cls, **initkwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_initkwargs", + "docstring": "We require a url_name to reverse URLs later. Additionally users can\npass a done_step_name to change the URL name of the \"done\" view.", + "code": "@classmethod\ndef get_initkwargs(cls, *args, **kwargs):\n \"\"\"\n We require a url_name to reverse URLs later. Additionally users can\n pass a done_step_name to change the URL name of the \"done\" view.\n \"\"\"\n assert 'url_name' in kwargs, 'URL name is needed to resolve correct wizard URLs'\n extra_kwargs = {\n 'done_step_name': kwargs.pop('done_step_name', 'done'),\n 'url_name': kwargs.pop('url_name'),\n }\n initkwargs = super(NamedUrlWizardView, cls).get_initkwargs(*args, **kwargs)\n initkwargs.update(extra_kwargs)\n assert initkwargs['done_step_name'] not in initkwargs['form_list'], \\\n 'step name \"%s\" is reserved for \"done\" view' % initkwargs['done_step_name']\n return initkwargs\n", + "kwargs": "cls, *args, **kwargs", + "line_number": 578 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 174, - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "delete", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_step_url", + "docstring": "", + "code": "def get_step_url(self, step):\n return reverse(self.url_name, kwargs={'step': step})\n", + "kwargs": "self, step", + "line_number": 596 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 212, - "code": "def delete(self, request, *args, **kwargs):\n self.object = self.get_object()\n self.object.delete()\n return HttpResponseRedirect(self.get_success_url())\n", - "name": "delete", - "docstring": "", "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "Do a redirect if user presses the prev. step button. The rest of this\nis super'd from WizardView.", + "code": "def post(self, *args, **kwargs):\n \"\"\"\n Do a redirect if user presses the prev. step button. The rest of this\n is super'd from WizardView.\n \"\"\"\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n self.storage.current_step = wizard_goto_step\n return redirect(self.get_step_url(wizard_goto_step))\n return super(NamedUrlWizardView, self).post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 644 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 34, - "code": "def __dir__(self):\n return self.all\n", - "name": "__dir__", - "docstring": "", "klass": [ - "StepsHelper", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_done", + "docstring": "When rendering the done view, we have to redirect first (if the URL\nname doesn't fit).", + "code": "def render_done(self, form, **kwargs):\n \"\"\"\n When rendering the done view, we have to redirect first (if the URL\n name doesn't fit).\n \"\"\"\n if kwargs.get('step', None) != self.done_step_name:\n return redirect(self.get_step_url(self.done_step_name))\n return super(NamedUrlWizardView, self).render_done(form, **kwargs)\n", + "kwargs": "self, form, **kwargs", + "line_number": 681 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 58, - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return handler(request, *args, **kwargs)\n", - "name": "dispatch", - "docstring": "", "klass": [ - "View", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "render_next_step", + "docstring": "When using the NamedUrlWizardView, we have to redirect to update the\nbrowser's URL to match the shown step.", + "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n When using the NamedUrlWizardView, we have to redirect to update the\n browser's URL to match the shown step.\n \"\"\"\n next_step = self.get_next_step()\n self.storage.current_step = next_step\n return redirect(self.get_step_url(next_step))\n", + "kwargs": "self, form, **kwargs", + "line_number": 664 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 208, - "code": "def dispatch(self, request, *args, **kwargs):\n \"\"\"\n This method gets called by the routing engine. The first argument is\n `request` which contains a `HttpRequest` instance.\n The request is stored in `self.request` for later use. The storage\n instance is stored in `self.storage`.\n After processing the request using the `dispatch` method, the\n response gets updated by the storage engine (for example add cookies).\n \"\"\"\n # add the storage engine to the current wizardview instance\n self.prefix = self.get_prefix(*args, **kwargs)\n self.storage = get_storage(self.storage_name, self.prefix, request,\n getattr(self, 'file_storage', None))\n self.steps = StepsHelper(self)\n response = super(WizardView, self).dispatch(request, *args, **kwargs)\n # update the response (e.g. adding cookies)\n self.storage.update_response(response)\n return response\n", - "name": "dispatch", - "docstring": "This method gets called by the routing engine. The first argument is\n`request` which contains a `HttpRequest` instance.\nThe request is stored in `self.request` for later use. The storage\ninstance is stored in `self.storage`.\n\nAfter processing the request using the `dispatch` method, the\nresponse gets updated by the storage engine (for example add cookies).", "klass": [ - "WizardView", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "render_revalidation_failure", + "docstring": "When a step fails, we have to redirect the user to the first failing\nstep.", + "code": "def render_revalidation_failure(self, failed_step, form, **kwargs):\n \"\"\"\n When a step fails, we have to redirect the user to the first failing\n step.\n \"\"\"\n self.storage.current_step = failed_step\n return redirect(self.get_step_url(failed_step))\n", + "kwargs": "self, failed_step, form, **kwargs", + "line_number": 673 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 548, - "code": "def done(self, form_list, **kwargs):\n \"\"\"\n This method must be overridden by a subclass to process to form data\n after processing all steps.\n \"\"\"\n raise NotImplementedError(\"Your %s class has not defined a done() \"\n \"method, which is required.\" % self.__class__.__name__)\n", - "name": "done", - "docstring": "This method must be overridden by a subclass to process to form data\nafter processing all steps.", "klass": [ - "WizardView", + "StepsHelper", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, form_list, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "__dir__", + "docstring": "", + "code": "def __dir__(self):\n return self.all\n", + "kwargs": "self", + "line_number": 34 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 62, - "code": "def form_invalid(self, form):\n return self.render_to_response(self.get_context_data(form=form))\n", - "name": "form_invalid", - "docstring": "", "klass": [ - "FormMixin", - "django.views.generic.edit", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "__init__", + "docstring": "", + "code": "def __init__(self, wizard):\n self._wizard = wizard\n", + "kwargs": "self, wizard", + "line_number": 31 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 59, - "code": "def form_valid(self, form):\n return HttpResponseRedirect(self.get_success_url())\n", - "name": "form_valid", - "docstring": "", "klass": [ - "FormMixin", - "django.views.generic.edit", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "__len__", + "docstring": "", + "code": "def __len__(self):\n return self.count\n", + "kwargs": "self", + "line_number": 37 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 111, - "code": "def form_valid(self, form):\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", - "name": "form_valid", - "docstring": "", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "__repr__", + "docstring": "", + "code": "def __repr__(self):\n return '' % (self._wizard, self.all)\n", + "kwargs": "self", + "line_number": 40 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 122, - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "TemplateView", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "as_view", + "docstring": "This method is used within urls.py to create unique wizardview\ninstances for every request. We need to override this method because\nwe add some kwargs which are needed to make the wizardview usable.", + "code": "@classonlymethod\ndef as_view(cls, *args, **kwargs):\n \"\"\"\n This method is used within urls.py to create unique wizardview\n instances for every request. We need to override this method because\n we add some kwargs which are needed to make the wizardview usable.\n \"\"\"\n initkwargs = cls.get_initkwargs(*args, **kwargs)\n return super(WizardView, cls).as_view(**initkwargs)\n", + "kwargs": "cls, *args, **kwargs", + "line_number": 111 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 166, - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "dispatch", + "docstring": "This method gets called by the routing engine. The first argument is\n`request` which contains a `HttpRequest` instance.\nThe request is stored in `self.request` for later use. The storage\ninstance is stored in `self.storage`.\n\nAfter processing the request using the `dispatch` method, the\nresponse gets updated by the storage engine (for example add cookies).", + "code": "def dispatch(self, request, *args, **kwargs):\n \"\"\"\n This method gets called by the routing engine. The first argument is\n `request` which contains a `HttpRequest` instance.\n The request is stored in `self.request` for later use. The storage\n instance is stored in `self.storage`.\n After processing the request using the `dispatch` method, the\n response gets updated by the storage engine (for example add cookies).\n \"\"\"\n # add the storage engine to the current wizardview instance\n self.prefix = self.get_prefix(*args, **kwargs)\n self.storage = get_storage(self.storage_name, self.prefix, request,\n getattr(self, 'file_storage', None))\n self.steps = StepsHelper(self)\n response = super(WizardView, self).dispatch(request, *args, **kwargs)\n # update the response (e.g. adding cookies)\n self.storage.update_response(response)\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 208 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 599, - "code": "def get(self, *args, **kwargs):\n \"\"\"\n This renders the form or, if needed, does the http redirects.\n \"\"\"\n step_url = kwargs.get('step', None)\n if step_url is None:\n if 'reset' in self.request.GET:\n self.storage.reset()\n self.storage.current_step = self.steps.first\n if self.request.GET:\n query_string = \"?%s\" % self.request.GET.urlencode()\n else:\n query_string = \"\"\n return redirect(self.get_step_url(self.steps.current)\n + query_string)\n # is the current step the \"done\" name/view?\n elif step_url == self.done_step_name:\n last_step = self.steps.last\n return self.render_done(self.get_form(step=last_step,\n data=self.storage.get_step_data(last_step),\n files=self.storage.get_step_files(last_step)\n ), **kwargs)\n # is the url step name not equal to the step in the storage?\n # if yes, change the step in the storage (if name exists)\n elif step_url == self.steps.current:\n # URL step name and storage step name are equal, render!\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n elif step_url in self.get_form_list():\n self.storage.current_step = step_url\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n # invalid step name, reset to first and redirect.\n else:\n self.storage.current_step = self.steps.first\n return redirect(self.get_step_url(self.steps.first))\n", - "name": "get", - "docstring": "This renders the form or, if needed, does the http redirects.", "klass": [ - "NamedUrlWizardView", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "done", + "docstring": "This method must be overridden by a subclass to process to form data\nafter processing all steps.", + "code": "def done(self, form_list, **kwargs):\n \"\"\"\n This method must be overridden by a subclass to process to form data\n after processing all steps.\n \"\"\"\n raise NotImplementedError(\"Your %s class has not defined a done() \"\n \"method, which is required.\" % self.__class__.__name__)\n", + "kwargs": "self, form_list, **kwargs", + "line_number": 548 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 229, - "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n This method handles GET requests.\n If a GET request reaches this point, the wizard assumes that the user\n just starts at the first step or wants to restart the process.\n The data of the wizard will be resetted before rendering the first step.\n \"\"\"\n self.storage.reset()\n # reset the current step to the first step.\n self.storage.current_step = self.steps.first\n return self.render(self.get_form())\n", - "name": "get", - "docstring": "This method handles GET requests.\n\nIf a GET request reaches this point, the wizard assumes that the user\njust starts at the first step or wants to restart the process.\nThe data of the wizard will be resetted before rendering the first step.", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "This method handles GET requests.\n\nIf a GET request reaches this point, the wizard assumes that the user\njust starts at the first step or wants to restart the process.\nThe data of the wizard will be resetted before rendering the first step.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n This method handles GET requests.\n If a GET request reaches this point, the wizard assumes that the user\n just starts at the first step or wants to restart the process.\n The data of the wizard will be resetted before rendering the first step.\n \"\"\"\n self.storage.reset()\n # reset the current step to the first step.\n self.storage.current_step = self.steps.first\n return self.render(self.get_form())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 229 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 150, - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(**kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s', self.request.path,\n extra={\n 'status_code': 410,\n 'request': self.request\n })\n return http.HttpResponseGone()\n", - "name": "get", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_all_cleaned_data", + "docstring": "Returns a merged dictionary of all step cleaned_data dictionaries.\nIf a step contains a `FormSet`, the key will be prefixed with formset\nand contain a list of the formset cleaned_data dictionaries.", + "code": "def get_all_cleaned_data(self):\n \"\"\"\n Returns a merged dictionary of all step cleaned_data dictionaries.\n If a step contains a `FormSet`, the key will be prefixed with formset\n and contain a list of the formset cleaned_data dictionaries.\n \"\"\"\n cleaned_data = {}\n for form_key in self.get_form_list():\n form_obj = self.get_form(\n step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key)\n )\n if form_obj.is_valid():\n if isinstance(form_obj.cleaned_data, (tuple, list)):\n cleaned_data.update({\n 'formset-%s' % form_key: form_obj.cleaned_data\n })\n else:\n cleaned_data.update(form_obj.cleaned_data)\n return cleaned_data\n", + "kwargs": "self", + "line_number": 434 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 113, - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty and len(self.object_list) == 0:\n raise Http404(_(u\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data(object_list=self.object_list)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseListView", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_cleaned_data_for_step", + "docstring": "Returns the cleaned data for a given `step`. Before returning the\ncleaned data, the stored values are being revalidated through the\nform. If the data doesn't validate, None will be returned.", + "code": "def get_cleaned_data_for_step(self, step):\n \"\"\"\n Returns the cleaned data for a given `step`. Before returning the\n cleaned data, the stored values are being revalidated through the\n form. If the data doesn't validate, None will be returned.\n \"\"\"\n if step in self.form_list:\n form_obj = self.get_form(step=step,\n data=self.storage.get_step_data(step),\n files=self.storage.get_step_files(step))\n if form_obj.is_valid():\n return form_obj.cleaned_data\n return None\n", + "kwargs": "self, step", + "line_number": 456 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 189, - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Returns the template context for a step. You can overwrite this method\nto add more data for all or some steps. This method returns a\ndictionary containing the rendered form step. Available template\ncontext variables are:\n\n * all extra data stored in the storage backend\n * `form` - form instance of the current step\n * `wizard` - the wizard instance itself\n\nExample:\n\n.. code-block:: python\n\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context", + "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n Returns the template context for a step. You can overwrite this method\n to add more data for all or some steps. This method returns a\n dictionary containing the rendered form step. Available template\n context variables are:\n * all extra data stored in the storage backend\n * `form` - form instance of the current step\n * `wizard` - the wizard instance itself\n Example:\n .. code-block:: python\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context\n \"\"\"\n context = super(WizardView, self).get_context_data(**kwargs)\n context.update(self.storage.extra_data)\n context['wizard'] = {\n 'form': form,\n 'steps': self.steps,\n 'management_form': ManagementForm(prefix=self.prefix, initial={\n 'current_step': self.steps.current,\n }),\n }\n return context\n", + "kwargs": "self, form, **kwargs", + "line_number": 507 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 129, - "code": "def get(self, request, *args, **kwargs):\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n return self.render_to_response(self.get_context_data(form=form))\n", - "name": "get", - "docstring": "", "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form", + "docstring": "Constructs the form for a given `step`. If no `step` is defined, the\ncurrent step will be determined automatically.\n\nThe form will be initialized using the `data` argument to prefill the\nnew form. If needed, instance or queryset (for `ModelForm` or\n`ModelFormSet`) will be added too.", + "code": "def get_form(self, step=None, data=None, files=None):\n \"\"\"\n Constructs the form for a given `step`. If no `step` is defined, the\n current step will be determined automatically.\n The form will be initialized using the `data` argument to prefill the\n new form. If needed, instance or queryset (for `ModelForm` or\n `ModelFormSet`) will be added too.\n \"\"\"\n if step is None:\n step = self.steps.current\n # prepare the kwargs for the form instance.\n kwargs = self.get_form_kwargs(step)\n kwargs.update({\n 'data': data,\n 'files': files,\n 'prefix': self.get_form_prefix(step, self.form_list[step]),\n 'initial': self.get_form_initial(step),\n })\n if issubclass(self.form_list[step], forms.ModelForm):\n # If the form is based on ModelForm, add instance if available\n # and not previously set.\n kwargs.setdefault('instance', self.get_form_instance(step))\n elif issubclass(self.form_list[step], forms.models.BaseModelFormSet):\n # If the form is based on ModelFormSet, add queryset if available\n # and not previous set.\n kwargs.setdefault('queryset', self.get_form_instance(step))\n return self.form_list[step](**kwargs)\n", + "kwargs": "self, step=None, data=None, files=None", + "line_number": 368 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 97, - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseDetailView", - "django.views.generic.detail", - "Django", + "WizardView", + "django.contrib.formtools.wizard.views", + "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_initial", + "docstring": "Returns a dictionary which will be passed to the form for `step`\nas `initial`. If no initial data was provied while initializing the\nform wizard, a empty dictionary will be returned.", + "code": "def get_form_initial(self, step):\n \"\"\"\n Returns a dictionary which will be passed to the form for `step`\n as `initial`. If no initial data was provied while initializing the\n form wizard, a empty dictionary will be returned.\n \"\"\"\n return self.initial_dict.get(step, {})\n", + "kwargs": "self, step", + "line_number": 345 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 171, - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_instance", + "docstring": "Returns a object which will be passed to the form for `step`\nas `instance`. If no instance object was provied while initializing\nthe form wizard, None will be returned.", + "code": "def get_form_instance(self, step):\n \"\"\"\n Returns a object which will be passed to the form for `step`\n as `instance`. If no instance object was provied while initializing\n the form wizard, None will be returned.\n \"\"\"\n return self.instance_dict.get(step, None)\n", + "kwargs": "self, step", + "line_number": 353 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 434, - "code": "def get_all_cleaned_data(self):\n \"\"\"\n Returns a merged dictionary of all step cleaned_data dictionaries.\n If a step contains a `FormSet`, the key will be prefixed with formset\n and contain a list of the formset cleaned_data dictionaries.\n \"\"\"\n cleaned_data = {}\n for form_key in self.get_form_list():\n form_obj = self.get_form(\n step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key)\n )\n if form_obj.is_valid():\n if isinstance(form_obj.cleaned_data, (tuple, list)):\n cleaned_data.update({\n 'formset-%s' % form_key: form_obj.cleaned_data\n })\n else:\n cleaned_data.update(form_obj.cleaned_data)\n return cleaned_data\n", - "name": "get_all_cleaned_data", - "docstring": "Returns a merged dictionary of all step cleaned_data dictionaries.\nIf a step contains a `FormSet`, the key will be prefixed with formset\nand contain a list of the formset cleaned_data dictionaries.", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form\n(or formset) on the given step.", + "code": "def get_form_kwargs(self, step=None):\n \"\"\"\n Returns the keyword arguments for instantiating the form\n (or formset) on the given step.\n \"\"\"\n return {}\n", + "kwargs": "self, step=None", + "line_number": 361 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 66, - "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "name": "get_allow_empty", - "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_list", + "docstring": "This method returns a form_list based on the initial form list but\nchecks if there is a condition method/value in the condition_list.\nIf an entry exists in the condition list, it will call/read the value\nand respect the result. (True means add the form, False means ignore\nthe form)\n\nThe form_list is always generated on the fly because condition methods\ncould use data from other (maybe previous forms).", + "code": "def get_form_list(self):\n \"\"\"\n This method returns a form_list based on the initial form list but\n checks if there is a condition method/value in the condition_list.\n If an entry exists in the condition list, it will call/read the value\n and respect the result. (True means add the form, False means ignore\n the form)\n The form_list is always generated on the fly because condition methods\n could use data from other (maybe previous forms).\n \"\"\"\n form_list = SortedDict()\n for form_key, form_class in self.form_list.iteritems():\n # try to fetch the value from condition list, by default, the form\n # gets passed to the new list.\n condition = self.condition_dict.get(form_key, True)\n if callable(condition):\n # call the value if needed, passes the current instance.\n condition = condition(self)\n if condition:\n form_list[form_key] = form_class\n return form_list\n", + "kwargs": "self", + "line_number": 185 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 157, - "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", - "name": "get_allow_future", - "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_prefix", + "docstring": "Returns the prefix which will be used when calling the actual form for\nthe given step. `step` contains the step-name, `form` the form which\nwill be called with the returned prefix.\n\nIf no step is given, the form_prefix will determine the current step\nautomatically.", + "code": "def get_form_prefix(self, step=None, form=None):\n \"\"\"\n Returns the prefix which will be used when calling the actual form for\n the given step. `step` contains the step-name, `form` the form which\n will be called with the returned prefix.\n If no step is given, the form_prefix will determine the current step\n automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n return str(step)\n", + "kwargs": "self, step=None, form=None", + "line_number": 332 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 456, - "code": "def get_cleaned_data_for_step(self, step):\n \"\"\"\n Returns the cleaned data for a given `step`. Before returning the\n cleaned data, the stored values are being revalidated through the\n form. If the data doesn't validate, None will be returned.\n \"\"\"\n if step in self.form_list:\n form_obj = self.get_form(step=step,\n data=self.storage.get_step_data(step),\n files=self.storage.get_step_files(step))\n if form_obj.is_valid():\n return form_obj.cleaned_data\n return None\n", - "name": "get_cleaned_data_for_step", - "docstring": "Returns the cleaned data for a given `step`. Before returning the\ncleaned data, the stored values are being revalidated through the\nform. If the data doesn't validate, None will be returned.", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_step_data", + "docstring": "Is used to return the raw form data. You may use this method to\nmanipulate the data.", + "code": "def get_form_step_data(self, form):\n \"\"\"\n Is used to return the raw form data. You may use this method to\n manipulate the data.\n \"\"\"\n return form.data\n", + "kwargs": "self, form", + "line_number": 420 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 115, - "code": "def get_context_data(self, **kwargs):\n context = kwargs\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n return context\n", - "name": "get_context_data", - "docstring": "", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_step_files", + "docstring": "Is used to return the raw form files. You may use this method to\nmanipulate the data.", + "code": "def get_form_step_files(self, form):\n \"\"\"\n Is used to return the raw form files. You may use this method to\n manipulate the data.\n \"\"\"\n return form.files\n", + "kwargs": "self, form", + "line_number": 427 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 507, - "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n Returns the template context for a step. You can overwrite this method\n to add more data for all or some steps. This method returns a\n dictionary containing the rendered form step. Available template\n context variables are:\n * all extra data stored in the storage backend\n * `form` - form instance of the current step\n * `wizard` - the wizard instance itself\n Example:\n .. code-block:: python\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context\n \"\"\"\n context = super(WizardView, self).get_context_data(**kwargs)\n context.update(self.storage.extra_data)\n context['wizard'] = {\n 'form': form,\n 'steps': self.steps,\n 'management_form': ManagementForm(prefix=self.prefix, initial={\n 'current_step': self.steps.current,\n }),\n }\n return context\n", - "name": "get_context_data", - "docstring": "Returns the template context for a step. You can overwrite this method\nto add more data for all or some steps. This method returns a\ndictionary containing the rendered form step. Available template\ncontext variables are:\n\n * all extra data stored in the storage backend\n * `form` - form instance of the current step\n * `wizard` - the wizard instance itself\n\nExample:\n\n.. code-block:: python\n\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_initkwargs", + "docstring": "Creates a dict with all needed parameters for the form wizard instances.\n\n* `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n* `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n* `instance_dict` - contains a dictionary of instance objects. This\n is only used when `ModelForm`s are used. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n* `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.", + "code": "@classmethod\ndef get_initkwargs(cls, form_list, initial_dict=None,\n instance_dict=None, condition_dict=None, *args, **kwargs):\n \"\"\"\n Creates a dict with all needed parameters for the form wizard instances.\n * `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n * `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n * `instance_dict` - contains a dictionary of instance objects. This\n is only used when `ModelForm`s are used. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n * `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.\n \"\"\"\n kwargs.update({\n 'initial_dict': initial_dict or {},\n 'instance_dict': instance_dict or {},\n 'condition_dict': condition_dict or {},\n })\n init_form_list = SortedDict()\n assert len(form_list) > 0, 'at least one form is needed'\n # walk through the passed form list\n for i, form in enumerate(form_list):\n if isinstance(form, (list, tuple)):\n # if the element is a tuple, add the tuple to the new created\n # sorted dictionary.\n init_form_list[unicode(form[0])] = form[1]\n else:\n # if not, add the form with a zero based counter as unicode\n init_form_list[unicode(i)] = form\n # walk through the new created list of forms\n for form in init_form_list.itervalues():\n if issubclass(form, formsets.BaseFormSet):\n # if the element is based on BaseFormSet (FormSet/ModelFormSet)\n # we need to override the form variable.\n form = form.form\n # check if any form contains a FileField, if yes, we need a\n # file_storage added to the wizardview (by subclassing).\n for field in form.base_fields.itervalues():\n if (isinstance(field, forms.FileField) and\n not hasattr(cls, 'file_storage')):\n raise NoFileStorageConfigured\n # build the kwargs for the wizardview instances\n kwargs['form_list'] = init_form_list\n return kwargs\n", + "kwargs": "cls, form_list, initial_dict=None, instance_dict=None, condition_dict=None, *args, **kwargs", + "line_number": 121 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 117, - "code": "def get_context_data(self, **kwargs):\n return {\n 'params': kwargs\n }\n", - "name": "get_context_data", - "docstring": "", "klass": [ - "TemplateView", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_step", + "docstring": "Returns the next step after the given `step`. If no more steps are\navailable, None will be returned. If the `step` argument is None, the\ncurrent step will be determined automatically.", + "code": "def get_next_step(self, step=None):\n \"\"\"\n Returns the next step after the given `step`. If no more steps are\n available, None will be returned. If the `step` argument is None, the\n current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n key = form_list.keyOrder.index(step) + 1\n if len(form_list.keyOrder) > key:\n return form_list.keyOrder[key]\n return None\n", + "kwargs": "self, step=None", + "line_number": 470 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 84, - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list')\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n context.update(kwargs)\n if context_object_name is not None:\n context[context_object_name] = queryset\n return context\n", - "name": "get_context_data", - "docstring": "Get the context for this view.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_prefix", + "docstring": "", + "code": "def get_prefix(self, *args, **kwargs):\n # TODO: Add some kind of unique id to prefix\n return normalize_name(self.__class__.__name__)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 181 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 88, - "code": "def get_context_data(self, **kwargs):\n context = kwargs\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n return context\n", - "name": "get_context_data", - "docstring": "", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_prev_step", + "docstring": "Returns the previous step before the given `step`. If there are no\nsteps available, None will be returned. If the `step` argument is\nNone, the current step will be determined automatically.", + "code": "def get_prev_step(self, step=None):\n \"\"\"\n Returns the previous step before the given `step`. If there are no\n steps available, None will be returned. If the `step` argument is\n None, the current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n key = form_list.keyOrder.index(step) - 1\n if key >= 0:\n return form_list.keyOrder[key]\n return None\n", + "kwargs": "self, step=None", + "line_number": 484 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 48, - "code": "def get_context_data(self, **kwargs):\n return kwargs\n", - "name": "get_context_data", - "docstring": "", "klass": [ - "FormMixin", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_step_index", + "docstring": "Returns the index for the given `step` name. If no step is given,\nthe current step will be used to get the index.", + "code": "def get_step_index(self, step=None):\n \"\"\"\n Returns the index for the given `step` name. If no step is given,\n the current step will be used to get the index.\n \"\"\"\n if step is None:\n step = self.steps.current\n return self.get_form_list().keyOrder.index(step)\n", + "kwargs": "self, step=None", + "line_number": 498 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 220, - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context. Must return a Context (or subclass) instance.\n \"\"\"\n items = kwargs.pop('object_list')\n context = super(BaseDateListView, self).get_context_data(object_list=items)\n context.update(kwargs)\n return context\n", - "name": "get_context_data", - "docstring": "Get the context. Must return a Context (or subclass) instance.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "This method handles POST requests.\n\nThe wizard will render either the current step (if form validation\nwasn't successful), the next step (if the current step was stored\nsuccessful) or the done view (if no more steps are available)", + "code": "def post(self, *args, **kwargs):\n \"\"\"\n This method handles POST requests.\n The wizard will render either the current step (if form validation\n wasn't successful), the next step (if the current step was stored\n successful) or the done view (if no more steps are available)\n \"\"\"\n # Look for a wizard_goto_step element in the posted data which\n # contains a valid step name. If one was found, render the requested\n # form. (This makes stepping back a lot easier).\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n self.storage.current_step = wizard_goto_step\n form = self.get_form(\n data=self.storage.get_step_data(self.steps.current),\n files=self.storage.get_step_files(self.steps.current))\n return self.render(form)\n # Check if form was refreshed\n management_form = ManagementForm(self.request.POST, prefix=self.prefix)\n if not management_form.is_valid():\n raise ValidationError(\n 'ManagementForm data is missing or has been tampered.')\n form_current_step = management_form.cleaned_data['current_step']\n if (form_current_step != self.steps.current and\n self.storage.current_step is not None):\n # form refreshed, change current step\n self.storage.current_step = form_current_step\n # get the form for the current step\n form = self.get_form(data=self.request.POST, files=self.request.FILES)\n # and try to validate\n if form.is_valid():\n # if the form is valid, store the cleaned data and files.\n self.storage.set_step_data(self.steps.current, self.process_step(form))\n self.storage.set_step_files(self.steps.current, self.process_step_files(form))\n # check if the current step is the last step\n if self.steps.current == self.steps.last:\n # no more steps, render done view\n return self.render_done(form, **kwargs)\n else:\n # proceed to the next step\n return self.render_next_step(form)\n return self.render(form)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 243 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 655, - "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n NamedUrlWizardView provides the url_name of this wizard in the context\n dict `wizard`.\n \"\"\"\n context = super(NamedUrlWizardView, self).get_context_data(form=form, **kwargs)\n context['wizard']['url_name'] = self.url_name\n return context\n", - "name": "get_context_data", - "docstring": "NamedUrlWizardView provides the url_name of this wizard in the context\ndict `wizard`.", "klass": [ - "NamedUrlWizardView", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "process_step", + "docstring": "This method is used to postprocess the form data. By default, it\nreturns the raw `form.data` dictionary.", + "code": "def process_step(self, form):\n \"\"\"\n This method is used to postprocess the form data. By default, it\n returns the raw `form.data` dictionary.\n \"\"\"\n return self.get_form_step_data(form)\n", + "kwargs": "self, form", + "line_number": 397 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 73, - "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return smart_str('%s_list' % object_list.model._meta.object_name.lower())\n else:\n return None\n", - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, object_list" - }, - "model": "cbv.method", - "pk": null + "name": "process_step_files", + "docstring": "This method is used to postprocess the form files. By default, it\nreturns the raw `form.files` dictionary.", + "code": "def process_step_files(self, form):\n \"\"\"\n This method is used to postprocess the form files. By default, it\n returns the raw `form.files` dictionary.\n \"\"\"\n return self.get_form_step_files(form)\n", + "kwargs": "self, form", + "line_number": 404 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 77, - "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(obj, '_meta'):\n return smart_str(obj._meta.object_name.lower())\n else:\n return None\n", - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, obj" - }, - "model": "cbv.method", - "pk": null + "name": "render", + "docstring": "Returns a ``HttpResponse`` containing all needed context data.", + "code": "def render(self, form=None, **kwargs):\n \"\"\"\n Returns a ``HttpResponse`` containing all needed context data.\n \"\"\"\n form = form or self.get_form()\n context = self.get_context_data(form=form, **kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, form=None, **kwargs", + "line_number": 540 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 400, - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n date_field = self.get_date_field()\n field = self.get_queryset().model._meta.get_field(date_field)\n lookup_kwargs = _date_lookup_for_field(field, date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "render_done", + "docstring": "This method gets called when all forms passed. The method should also\nre-validate all steps to prevent manipulation. If any form don't\nvalidate, `render_revalidation_failure` should get called.\nIf everything is fine call `done`.", + "code": "def render_done(self, form, **kwargs):\n \"\"\"\n This method gets called when all forms passed. The method should also\n re-validate all steps to prevent manipulation. If any form don't\n validate, `render_revalidation_failure` should get called.\n If everything is fine call `done`.\n \"\"\"\n final_form_list = []\n # walk through the form list and try to validate the data again.\n for form_key in self.get_form_list():\n form_obj = self.get_form(step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key))\n if not form_obj.is_valid():\n return self.render_revalidation_failure(form_key, form_obj, **kwargs)\n final_form_list.append(form_obj)\n # render the done view and reset the wizard before returning the\n # response. This is needed to prevent from rendering done with the\n # same data twice.\n done_response = self.done(final_form_list, **kwargs)\n self.storage.reset()\n return done_response\n", + "kwargs": "self, form, **kwargs", + "line_number": 308 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 178, - "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and itesm\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", - "name": "get_dated_items", - "docstring": "Obtain the list of dates and itesm", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_next_step", + "docstring": "This method gets called when the next step/form should be rendered.\n`form` contains the last/current form.", + "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n This method gets called when the next step/form should be rendered.\n `form` contains the last/current form.\n \"\"\"\n # get the form instance based on the data from the storage backend\n # (if available).\n next_step = self.steps.next\n new_form = self.get_form(next_step,\n data=self.storage.get_step_data(next_step),\n files=self.storage.get_step_files(next_step))\n # change the stored current step\n self.storage.current_step = next_step\n return self.render(new_form, **kwargs)\n", + "kwargs": "self, form, **kwargs", + "line_number": 292 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 238, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, 'year')\n if date_list:\n object_list = qs.order_by('-' + self.get_date_field())\n else:\n object_list = qs.none()\n return (date_list, object_list, {})\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_revalidation_failure", + "docstring": "Gets called when a form doesn't validate when rendering the done\nview. By default, it changes the current step to failing forms step\nand renders the form.", + "code": "def render_revalidation_failure(self, step, form, **kwargs):\n \"\"\"\n Gets called when a form doesn't validate when rendering the done\n view. By default, it changes the current step to failing forms step\n and renders the form.\n \"\"\"\n self.storage.current_step = step\n return self.render(form, **kwargs)\n", + "kwargs": "self, step, form, **kwargs", + "line_number": 411 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 386, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "__repr__", + "docstring": "", + "code": "def __repr__(self):\n return '<%s: forms: %s>' % (self.__class__.__name__, self.form_list)\n", + "kwargs": "self", + "line_number": 108 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 305, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n # Construct a date-range lookup.\n first_day, last_day = _month_bounds(date)\n lookup_kwargs = {\n '%s__gte' % date_field: first_day,\n '%s__lt' % date_field: last_day,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs, 'day')\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "delete", + "docstring": "", + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 174 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 433, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(**kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s', self.request.path,\n extra={\n 'status_code': 410,\n 'request': self.request\n })\n return http.HttpResponseGone()\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 150 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 345, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n # Construct a date-range lookup.\n first_day = date\n last_day = date + datetime.timedelta(days=7)\n lookup_kwargs = {\n '%s__gte' % date_field: first_day,\n '%s__lt' % date_field: last_day,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {'week': date})\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", + "code": "def get_redirect_url(self, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n else:\n return None\n", + "kwargs": "self, **kwargs", + "line_number": 135 + } }, { - "fields": { - "line_number": 266, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n # Yes, no error checking: the URLpattern ought to validate this; it's\n # an error if it doesn't.\n year = self.get_year()\n date_field = self.get_date_field()\n qs = self.get_dated_queryset(**{date_field+'__year': year})\n date_list = self.get_date_list(qs, 'month')\n if self.get_make_object_list():\n object_list = qs.order_by('-'+date_field)\n else:\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n object_list = qs.none()\n return (date_list, object_list, {'year': year})\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", - "Django", - "1.4" - ], - "kwargs": "self" - }, "model": "cbv.method", - "pk": null -}, -{ + "pk": null, "fields": { - "line_number": 184, - "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n if not allow_future:\n qs = qs.filter(**{'%s__lte' % date_field: timezone.now()})\n if not allow_empty and not qs:\n raise Http404(_(u\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_unicode(qs.model._meta.verbose_name_plural)\n })\n return qs\n", - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self, **lookup" - }, - "model": "cbv.method", - "pk": null + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 165 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 149, - "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(u\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "options", + "docstring": "", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 171 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 204, - "code": "def get_date_list(self, queryset, date_type):\n \"\"\"\n Get a date list by calling `queryset.dates()`, checking along the way\n for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n date_list = queryset.dates(date_field, date_type)[::-1]\n if date_list is not None and not date_list and not allow_empty:\n name = force_unicode(queryset.model._meta.verbose_name_plural)\n raise Http404(_(u\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates()`, checking along the way\nfor empty lists that aren't allowed.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self, queryset, date_type" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 168 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 89, - "code": "def get_day(self):\n \"Return the day for which this view should display data\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(u\"No day specified\"))\n return day\n", - "name": "get_day", - "docstring": "Return the day for which this view should display data", "klass": [ - "DayMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 177 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 82, - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", "klass": [ - "DayMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "kwargs": "self", + "line_number": 100 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 30, - "code": "def get_form(self, form_class):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n return form_class(**self.get_form_kwargs())\n", - "name": "get_form", - "docstring": "Returns an instance of the form to be used in this view.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self, form_class" - }, - "model": "cbv.method", - "pk": null + "name": "render_to_response", + "docstring": "Returns a response with a template rendered with the given context.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response with a template rendered with the given context.\n \"\"\"\n return self.response_class(\n request = self.request,\n template = self.get_template_names(),\n context = context,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 89 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 368, - "code": "def get_form(self, step=None, data=None, files=None):\n \"\"\"\n Constructs the form for a given `step`. If no `step` is defined, the\n current step will be determined automatically.\n The form will be initialized using the `data` argument to prefill the\n new form. If needed, instance or queryset (for `ModelForm` or\n `ModelFormSet`) will be added too.\n \"\"\"\n if step is None:\n step = self.steps.current\n # prepare the kwargs for the form instance.\n kwargs = self.get_form_kwargs(step)\n kwargs.update({\n 'data': data,\n 'files': files,\n 'prefix': self.get_form_prefix(step, self.form_list[step]),\n 'initial': self.get_form_initial(step),\n })\n if issubclass(self.form_list[step], forms.ModelForm):\n # If the form is based on ModelForm, add instance if available\n # and not previously set.\n kwargs.setdefault('instance', self.get_form_instance(step))\n elif issubclass(self.form_list[step], forms.models.BaseModelFormSet):\n # If the form is based on ModelFormSet, add queryset if available\n # and not previous set.\n kwargs.setdefault('queryset', self.get_form_instance(step))\n return self.form_list[step](**kwargs)\n", - "name": "get_form", - "docstring": "Constructs the form for a given `step`. If no `step` is defined, the\ncurrent step will be determined automatically.\n\nThe form will be initialized using the `data` argument to prefill the\nnew form. If needed, instance or queryset (for `ModelForm` or\n`ModelFormSet`) will be added too.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "TemplateView", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self, step=None, data=None, files=None" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 122 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 71, - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n return model_forms.modelform_factory(model)\n", - "name": "get_form_class", - "docstring": "Returns the form class to use in this view", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n return {\n 'params': kwargs\n }\n", + "kwargs": "self, **kwargs", + "line_number": 117 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 24, - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", - "name": "get_form_class", - "docstring": "Returns the form class to use in this view", "klass": [ - "FormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n # sanitize keyword arguments\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(u\"You tried to pass in the %s method name as a \"\n u\"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(u\"%s() received an invalid keyword %r\" % (\n cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n return self.dispatch(request, *args, **kwargs)\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 29 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 345, - "code": "def get_form_initial(self, step):\n \"\"\"\n Returns a dictionary which will be passed to the form for `step`\n as `initial`. If no initial data was provied while initializing the\n form wizard, a empty dictionary will be returned.\n \"\"\"\n return self.initial_dict.get(step, {})\n", - "name": "get_form_initial", - "docstring": "Returns a dictionary which will be passed to the form for `step`\nas `initial`. If no initial data was provied while initializing the\nform wizard, a empty dictionary will be returned.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "View", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 58 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 353, - "code": "def get_form_instance(self, step):\n \"\"\"\n Returns a object which will be passed to the form for `step`\n as `instance`. If no instance object was provied while initializing\n the form wizard, None will be returned.\n \"\"\"\n return self.instance_dict.get(step, None)\n", - "name": "get_form_instance", - "docstring": "Returns a object which will be passed to the form for `step`\nas `instance`. If no instance object was provied while initializing\nthe form wizard, None will be returned.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "View", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n allowed_methods = [m for m in self.http_method_names if hasattr(self, m)]\n logger.warning('Method Not Allowed (%s): %s', request.method, request.path,\n extra={\n 'status_code': 405,\n 'request': self.request\n }\n )\n return http.HttpResponseNotAllowed(allowed_methods)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 71 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 91, - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instanciating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n kwargs.update({'instance': self.object})\n return kwargs\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instanciating the form.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.iteritems():\n setattr(self, key, value)\n", + "kwargs": "self, **kwargs", + "line_number": 19 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 36, - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instanciating the form.\n \"\"\"\n kwargs = {'initial': self.get_initial()}\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instanciating the form.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, 'year')\n if date_list:\n object_list = qs.order_by('-' + self.get_date_field())\n else:\n object_list = qs.none()\n return (date_list, object_list, {})\n", + "kwargs": "self", + "line_number": 238 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 361, - "code": "def get_form_kwargs(self, step=None):\n \"\"\"\n Returns the keyword arguments for instantiating the form\n (or formset) on the given step.\n \"\"\"\n return {}\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form\n(or formset) on the given step.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = queryset or self.get_queryset()\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(u\"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n date_field = self.get_date_field()\n field = qs.model._meta.get_field(date_field)\n lookup = _date_lookup_for_field(field, date)\n qs = qs.filter(**lookup)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 452 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 185, - "code": "def get_form_list(self):\n \"\"\"\n This method returns a form_list based on the initial form list but\n checks if there is a condition method/value in the condition_list.\n If an entry exists in the condition list, it will call/read the value\n and respect the result. (True means add the form, False means ignore\n the form)\n The form_list is always generated on the fly because condition methods\n could use data from other (maybe previous forms).\n \"\"\"\n form_list = SortedDict()\n for form_key, form_class in self.form_list.iteritems():\n # try to fetch the value from condition list, by default, the form\n # gets passed to the new list.\n condition = self.condition_dict.get(form_key, True)\n if callable(condition):\n # call the value if needed, passes the current instance.\n condition = condition(self)\n if condition:\n form_list[form_key] = form_class\n return form_list\n", - "name": "get_form_list", - "docstring": "This method returns a form_list based on the initial form list but\nchecks if there is a condition method/value in the condition_list.\nIf an entry exists in the condition list, it will call/read the value\nand respect the result. (True means add the form, False means ignore\nthe form)\n\nThe form_list is always generated on the fly because condition methods\ncould use data from other (maybe previous forms).", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 171 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 332, - "code": "def get_form_prefix(self, step=None, form=None):\n \"\"\"\n Returns the prefix which will be used when calling the actual form for\n the given step. `step` contains the step-name, `form` the form which\n will be called with the returned prefix.\n If no step is given, the form_prefix will determine the current step\n automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n return str(step)\n", - "name": "get_form_prefix", - "docstring": "Returns the prefix which will be used when calling the actual form for\nthe given step. `step` contains the step-name, `form` the form which\nwill be called with the returned prefix.\n\nIf no step is given, the form_prefix will determine the current step\nautomatically.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, step=None, form=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Get the context. Must return a Context (or subclass) instance.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context. Must return a Context (or subclass) instance.\n \"\"\"\n items = kwargs.pop('object_list')\n context = super(BaseDateListView, self).get_context_data(object_list=items)\n context.update(kwargs)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 220 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 420, - "code": "def get_form_step_data(self, form):\n \"\"\"\n Is used to return the raw form data. You may use this method to\n manipulate the data.\n \"\"\"\n return form.data\n", - "name": "get_form_step_data", - "docstring": "Is used to return the raw form data. You may use this method to\nmanipulate the data.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Obtain the list of dates and itesm", + "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and itesm\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", + "kwargs": "self", + "line_number": 178 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 427, - "code": "def get_form_step_files(self, form):\n \"\"\"\n Is used to return the raw form files. You may use this method to\n manipulate the data.\n \"\"\"\n return form.files\n", - "name": "get_form_step_files", - "docstring": "Is used to return the raw form files. You may use this method to\nmanipulate the data.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n if not allow_future:\n qs = qs.filter(**{'%s__lte' % date_field: timezone.now()})\n if not allow_empty and not qs:\n raise Http404(_(u\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_unicode(qs.model._meta.verbose_name_plural)\n })\n return qs\n", + "kwargs": "self, **lookup", + "line_number": 184 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 18, - "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", - "name": "get_initial", - "docstring": "Returns the initial data to use for forms on this view.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates()`, checking along the way\nfor empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type):\n \"\"\"\n Get a date list by calling `queryset.dates()`, checking along the way\n for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n date_list = queryset.dates(date_field, date_type)[::-1]\n if date_list is not None and not date_list and not allow_empty:\n name = force_unicode(queryset.model._meta.verbose_name_plural)\n raise Http404(_(u\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", + "kwargs": "self, queryset, date_type", + "line_number": 204 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 578, - "code": "@classmethod\ndef get_initkwargs(cls, *args, **kwargs):\n \"\"\"\n We require a url_name to reverse URLs later. Additionally users can\n pass a done_step_name to change the URL name of the \"done\" view.\n \"\"\"\n assert 'url_name' in kwargs, 'URL name is needed to resolve correct wizard URLs'\n extra_kwargs = {\n 'done_step_name': kwargs.pop('done_step_name', 'done'),\n 'url_name': kwargs.pop('url_name'),\n }\n initkwargs = super(NamedUrlWizardView, cls).get_initkwargs(*args, **kwargs)\n initkwargs.update(extra_kwargs)\n assert initkwargs['done_step_name'] not in initkwargs['form_list'], \\\n 'step name \"%s\" is reserved for \"done\" view' % initkwargs['done_step_name']\n return initkwargs\n", - "name": "get_initkwargs", - "docstring": "We require a url_name to reverse URLs later. Additionally users can\npass a done_step_name to change the URL name of the \"done\" view.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "cls, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n date_field = self.get_date_field()\n field = self.get_queryset().model._meta.get_field(date_field)\n lookup_kwargs = _date_lookup_for_field(field, date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 400 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 121, - "code": "@classmethod\ndef get_initkwargs(cls, form_list, initial_dict=None,\n instance_dict=None, condition_dict=None, *args, **kwargs):\n \"\"\"\n Creates a dict with all needed parameters for the form wizard instances.\n * `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n * `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n * `instance_dict` - contains a dictionary of instance objects. This\n is only used when `ModelForm`s are used. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n * `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.\n \"\"\"\n kwargs.update({\n 'initial_dict': initial_dict or {},\n 'instance_dict': instance_dict or {},\n 'condition_dict': condition_dict or {},\n })\n init_form_list = SortedDict()\n assert len(form_list) > 0, 'at least one form is needed'\n # walk through the passed form list\n for i, form in enumerate(form_list):\n if isinstance(form, (list, tuple)):\n # if the element is a tuple, add the tuple to the new created\n # sorted dictionary.\n init_form_list[unicode(form[0])] = form[1]\n else:\n # if not, add the form with a zero based counter as unicode\n init_form_list[unicode(i)] = form\n # walk through the new created list of forms\n for form in init_form_list.itervalues():\n if issubclass(form, formsets.BaseFormSet):\n # if the element is based on BaseFormSet (FormSet/ModelFormSet)\n # we need to override the form variable.\n form = form.form\n # check if any form contains a FileField, if yes, we need a\n # file_storage added to the wizardview (by subclassing).\n for field in form.base_fields.itervalues():\n if (isinstance(field, forms.FileField) and\n not hasattr(cls, 'file_storage')):\n raise NoFileStorageConfigured\n # build the kwargs for the wizardview instances\n kwargs['form_list'] = init_form_list\n return kwargs\n", - "name": "get_initkwargs", - "docstring": "Creates a dict with all needed parameters for the form wizard instances.\n\n* `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n* `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n* `instance_dict` - contains a dictionary of instance objects. This\n is only used when `ModelForm`s are used. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n* `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "cls, form_list, initial_dict=None, instance_dict=None, condition_dict=None, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", + "kwargs": "self", + "line_number": 386 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 286, - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", "klass": [ - "BaseYearArchiveView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n # Construct a date-range lookup.\n first_day, last_day = _month_bounds(date)\n lookup_kwargs = {\n '%s__gte' % date_field: first_day,\n '%s__lt' % date_field: last_day,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs, 'day')\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", + "kwargs": "self", + "line_number": 305 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 48, - "code": "def get_month(self):\n \"Return the month for which this view should display data\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(u\"No month specified\"))\n return month\n", - "name": "get_month", - "docstring": "Return the month for which this view should display data", "klass": [ - "MonthMixin", + "BaseTodayArchiveView", "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", + "kwargs": "self", + "line_number": 433 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 41, - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", "klass": [ - "MonthMixin", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n # Construct a date-range lookup.\n first_day = date\n last_day = date + datetime.timedelta(days=7)\n lookup_kwargs = {\n '%s__gte' % date_field: first_day,\n '%s__lt' % date_field: last_day,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {'week': date})\n", + "kwargs": "self", + "line_number": 345 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 102, - "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n next = date + datetime.timedelta(days=1)\n return _get_next_prev_month(self, next, is_previous=False, use_first_day=False)\n", - "name": "get_next_day", - "docstring": "Get the next valid day.", "klass": [ - "DayMixin", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n # Yes, no error checking: the URLpattern ought to validate this; it's\n # an error if it doesn't.\n year = self.get_year()\n date_field = self.get_date_field()\n qs = self.get_dated_queryset(**{date_field+'__year': year})\n date_list = self.get_date_list(qs, 'month')\n if self.get_make_object_list():\n object_list = qs.order_by('-'+date_field)\n else:\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n object_list = qs.none()\n return (date_list, object_list, {'year': year})\n", + "kwargs": "self", + "line_number": 266 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 61, - "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n first_day, last_day = _month_bounds(date)\n next = (last_day + datetime.timedelta(days=1)).replace(day=1)\n return _get_next_prev_month(self, next, is_previous=False, use_first_day=True)\n", - "name": "get_next_month", - "docstring": "Get the next valid month.", "klass": [ - "MonthMixin", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", + "kwargs": "self", + "line_number": 286 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 470, - "code": "def get_next_step(self, step=None):\n \"\"\"\n Returns the next step after the given `step`. If no more steps are\n available, None will be returned. If the `step` argument is None, the\n current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n key = form_list.keyOrder.index(step) + 1\n if len(form_list.keyOrder) > key:\n return form_list.keyOrder[key]\n return None\n", - "name": "get_next_step", - "docstring": "Returns the next step after the given `step`. If no more steps are\navailable, None will be returned. If the `step` argument is None, the\ncurrent step will be determined automatically.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "DateMixin", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_allow_future", + "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", + "kwargs": "self", + "line_number": 157 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 19, - "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg, None)\n slug = self.kwargs.get(self.slug_url_kwarg, None)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n elif slug is not None:\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n else:\n raise AttributeError(u\"Generic detail view %s must be called with \"\n u\"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n obj = queryset.get()\n except ObjectDoesNotExist:\n raise Http404(_(u\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "name": "get_object", - "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DateMixin", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, queryset=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(u\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", + "kwargs": "self", + "line_number": 149 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 452, - "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = queryset or self.get_queryset()\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(u\"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n date_field = self.get_date_field()\n field = qs.model._meta.get_field(date_field)\n lookup = _date_lookup_for_field(field, date)\n qs = qs.filter(**lookup)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", - "name": "get_object", - "docstring": "Get the object this request displays.", "klass": [ - "BaseDateDetailView", + "DayMixin", "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, queryset=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_day", + "docstring": "Return the day for which this view should display data", + "code": "def get_day(self):\n \"Return the day for which this view should display data\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(u\"No day specified\"))\n return day\n", + "kwargs": "self", + "line_number": 89 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 54, - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, queryset" - }, - "model": "cbv.method", - "pk": null + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", + "kwargs": "self", + "line_number": 82 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 60, - "code": "def get_paginator(self, queryset, per_page, orphans=0, allow_empty_first_page=True):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(queryset, per_page, orphans=orphans, allow_empty_first_page=allow_empty_first_page)\n", - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n next = date + datetime.timedelta(days=1)\n return _get_next_prev_month(self, next, is_previous=False, use_first_day=False)\n", + "kwargs": "self, date", + "line_number": 102 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 181, - "code": "def get_prefix(self, *args, **kwargs):\n # TODO: Add some kind of unique id to prefix\n return normalize_name(self.__class__.__name__)\n", - "name": "get_prefix", - "docstring": "", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "DayMixin", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n prev = date - datetime.timedelta(days=1)\n return _get_next_prev_month(self, prev, is_previous=True, use_first_day=False)\n", + "kwargs": "self, date", + "line_number": 109 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 109, - "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n prev = date - datetime.timedelta(days=1)\n return _get_next_prev_month(self, prev, is_previous=True, use_first_day=False)\n", - "name": "get_previous_day", - "docstring": "Get the previous valid day.", "klass": [ - "DayMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_month", + "docstring": "Return the month for which this view should display data", + "code": "def get_month(self):\n \"Return the month for which this view should display data\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(u\"No month specified\"))\n return month\n", + "kwargs": "self", + "line_number": 48 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 69, - "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n first_day, last_day = _month_bounds(date)\n prev = (first_day - datetime.timedelta(days=1))\n return _get_next_prev_month(self, prev, is_previous=True, use_first_day=True)\n", - "name": "get_previous_month", - "docstring": "Get the previous valid month.", "klass": [ "MonthMixin", "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "kwargs": "self", + "line_number": 41 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 484, - "code": "def get_prev_step(self, step=None):\n \"\"\"\n Returns the previous step before the given `step`. If there are no\n steps available, None will be returned. If the `step` argument is\n None, the current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n key = form_list.keyOrder.index(step) - 1\n if key >= 0:\n return form_list.keyOrder[key]\n return None\n", - "name": "get_prev_step", - "docstring": "Returns the previous step before the given `step`. If there are no\nsteps available, None will be returned. If the `step` argument is\nNone, the current step will be determined automatically.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MonthMixin", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n first_day, last_day = _month_bounds(date)\n next = (last_day + datetime.timedelta(days=1)).replace(day=1)\n return _get_next_prev_month(self, next, is_previous=False, use_first_day=True)\n", + "kwargs": "self, date", + "line_number": 61 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 55, - "code": "def get_queryset(self):\n \"\"\"\n Get the queryset to look an object up against. May not be called if\n `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(u\"%(cls)s is missing a queryset. Define \"\n u\"%(cls)s.model, %(cls)s.queryset, or override \"\n u\"%(cls)s.get_object().\" % {\n 'cls': self.__class__.__name__\n })\n return self.queryset._clone()\n", - "name": "get_queryset", - "docstring": "Get the queryset to look an object up against. May not be called if\n`get_object` is overridden.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n first_day, last_day = _month_bounds(date)\n prev = (first_day - datetime.timedelta(days=1))\n return _get_next_prev_month(self, prev, is_previous=True, use_first_day=True)\n", + "kwargs": "self, date", + "line_number": 69 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 17, - "code": "def get_queryset(self):\n \"\"\"\n Get the list of items for this view. This must be an interable, and may\n be a queryset (in which qs-specific behavior will be enabled).\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if hasattr(queryset, '_clone'):\n queryset = queryset._clone()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(u\"'%s' must define 'queryset' or 'model'\"\n % self.__class__.__name__)\n return queryset\n", - "name": "get_queryset", - "docstring": "Get the list of items for this view. This must be an interable, and may\nbe a queryset (in which qs-specific behavior will be enabled).", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_week", + "docstring": "Return the week for which this view should display data", + "code": "def get_week(self):\n \"Return the week for which this view should display data\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(u\"No week specified\"))\n return week\n", + "kwargs": "self", + "line_number": 128 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 135, - "code": "def get_redirect_url(self, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n else:\n return None\n", - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", "klass": [ - "RedirectView", - "django.views.generic.base", + "WeekMixin", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "kwargs": "self", + "line_number": 121 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 71, - "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_year", + "docstring": "Return the year for which this view should display data", + "code": "def get_year(self):\n \"Return the year for which this view should display data\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(u\"No year specified\"))\n return year\n", + "kwargs": "self", + "line_number": 23 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 498, - "code": "def get_step_index(self, step=None):\n \"\"\"\n Returns the index for the given `step` name. If no step is given,\n the current step will be used to get the index.\n \"\"\"\n if step is None:\n step = self.steps.current\n return self.get_form_list().keyOrder.index(step)\n", - "name": "get_step_index", - "docstring": "Returns the index for the given `step` name. If no step is given,\nthe current step will be used to get the index.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.4" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", + "kwargs": "self", + "line_number": 16 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 596, - "code": "def get_step_url(self, step):\n return reverse(self.url_name, kwargs={'step': step})\n", - "name": "get_step_url", - "docstring": "", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.4" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 97 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 51, - "code": "def get_success_url(self):\n if self.success_url:\n url = self.success_url\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", - "name": "get_success_url", - "docstring": "", "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = kwargs\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 88 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 99, - "code": "def get_success_url(self):\n if self.success_url:\n url = self.success_url % self.object.__dict__\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", - "name": "get_success_url", - "docstring": "", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(obj, '_meta'):\n return smart_str(obj._meta.object_name.lower())\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 77 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 221, - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", - "name": "get_success_url", - "docstring": "", "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_object", + "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg, None)\n slug = self.kwargs.get(self.slug_url_kwarg, None)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n elif slug is not None:\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n else:\n raise AttributeError(u\"Generic detail view %s must be called with \"\n u\"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n obj = queryset.get()\n except ObjectDoesNotExist:\n raise Http404(_(u\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 19 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 107, - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if get_template is overridden.\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if hasattr(self.object, '_meta'):\n names.append(\"%s/%s%s.html\" % (\n self.object._meta.app_label,\n self.object._meta.object_name.lower(),\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and hasattr(self.model, '_meta'):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.object_name.lower(),\n self.template_name_suffix\n ))\n return names\n", - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if get_template is overridden.", "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_queryset", + "docstring": "Get the queryset to look an object up against. May not be called if\n`get_object` is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Get the queryset to look an object up against. May not be called if\n `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(u\"%(cls)s is missing a queryset. Define \"\n u\"%(cls)s.model, %(cls)s.queryset, or override \"\n u\"%(cls)s.get_object().\" % {\n 'cls': self.__class__.__name__\n })\n return self.queryset._clone()\n", + "kwargs": "self", + "line_number": 55 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 126, - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if get_template is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.object_name.lower(), self.template_name_suffix))\n return names\n", - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if get_template is overridden.", "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", + "kwargs": "self", + "line_number": 71 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 100, - "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "name": "get_template_names", - "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if get_template is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if get_template is overridden.\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if hasattr(self.object, '_meta'):\n names.append(\"%s/%s%s.html\" % (\n self.object._meta.app_label,\n self.object._meta.object_name.lower(),\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and hasattr(self.model, '_meta'):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.object_name.lower(),\n self.template_name_suffix\n ))\n return names\n", + "kwargs": "self", + "line_number": 107 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 128, - "code": "def get_week(self):\n \"Return the week for which this view should display data\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(u\"No week specified\"))\n return week\n", - "name": "get_week", - "docstring": "Return the week for which this view should display data", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 166 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 121, - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 170 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 23, - "code": "def get_year(self):\n \"Return the year for which this view should display data\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(u\"No year specified\"))\n return year\n", - "name": "get_year", - "docstring": "Return the year for which this view should display data", "klass": [ - "YearMixin", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 189 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 16, - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", "klass": [ - "YearMixin", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 193 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 165, - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "head", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "delete", + "docstring": "", + "code": "def delete(self, request, *args, **kwargs):\n self.object = self.get_object()\n self.object.delete()\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 212 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 71, - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n allowed_methods = [m for m in self.http_method_names if hasattr(self, m)]\n logger.warning('Method Not Allowed (%s): %s', request.method, request.path,\n extra={\n 'status_code': 405,\n 'request': self.request\n }\n )\n return http.HttpResponseNotAllowed(allowed_methods)\n", - "name": "http_method_not_allowed", - "docstring": "", "klass": [ - "View", - "django.views.generic.base", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", + "kwargs": "self", + "line_number": 221 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 19, - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.iteritems():\n setattr(self, key, value)\n", - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", "klass": [ - "View", - "django.views.generic.base", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, *args, **kwargs):\n return self.delete(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 218 + } }, { - "fields": { - "line_number": 31, - "code": "def __init__(self, wizard):\n self._wizard = wizard\n", - "name": "__init__", - "docstring": "", + "model": "cbv.method", + "pk": null, + "fields": { "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "FormMixin", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, wizard" - }, - "model": "cbv.method", - "pk": null + "name": "form_invalid", + "docstring": "", + "code": "def form_invalid(self, form):\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 62 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 37, - "code": "def __len__(self):\n return self.count\n", - "name": "__len__", - "docstring": "", "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "FormMixin", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "form_valid", + "docstring": "", + "code": "def form_valid(self, form):\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 59 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 171, - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "options", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n return kwargs\n", + "kwargs": "self, **kwargs", + "line_number": 48 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 33, - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(queryset, page_size, allow_empty_first_page=self.get_allow_empty())\n page = self.kwargs.get('page') or self.request.GET.get('page') or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(u\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage:\n raise Http404(_(u'Invalid page (%(page_number)s)') % {\n 'page_number': page_number\n })\n", - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, queryset, page_size" - }, - "model": "cbv.method", - "pk": null + "name": "get_form", + "docstring": "Returns an instance of the form to be used in this view.", + "code": "def get_form(self, form_class):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class", + "line_number": 30 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 170, - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "BaseCreateView", + "FormMixin", "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_class", + "docstring": "Returns the form class to use in this view", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", + "kwargs": "self", + "line_number": 24 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 193, - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "BaseUpdateView", + "FormMixin", "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instanciating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instanciating the form.\n \"\"\"\n kwargs = {'initial': self.get_initial()}\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "kwargs": "self", + "line_number": 36 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 218, - "code": "def post(self, *args, **kwargs):\n return self.delete(*args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "DeletionMixin", + "FormMixin", "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_initial", + "docstring": "Returns the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", + "kwargs": "self", + "line_number": 18 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 243, - "code": "def post(self, *args, **kwargs):\n \"\"\"\n This method handles POST requests.\n The wizard will render either the current step (if form validation\n wasn't successful), the next step (if the current step was stored\n successful) or the done view (if no more steps are available)\n \"\"\"\n # Look for a wizard_goto_step element in the posted data which\n # contains a valid step name. If one was found, render the requested\n # form. (This makes stepping back a lot easier).\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n self.storage.current_step = wizard_goto_step\n form = self.get_form(\n data=self.storage.get_step_data(self.steps.current),\n files=self.storage.get_step_files(self.steps.current))\n return self.render(form)\n # Check if form was refreshed\n management_form = ManagementForm(self.request.POST, prefix=self.prefix)\n if not management_form.is_valid():\n raise ValidationError(\n 'ManagementForm data is missing or has been tampered.')\n form_current_step = management_form.cleaned_data['current_step']\n if (form_current_step != self.steps.current and\n self.storage.current_step is not None):\n # form refreshed, change current step\n self.storage.current_step = form_current_step\n # get the form for the current step\n form = self.get_form(data=self.request.POST, files=self.request.FILES)\n # and try to validate\n if form.is_valid():\n # if the form is valid, store the cleaned data and files.\n self.storage.set_step_data(self.steps.current, self.process_step(form))\n self.storage.set_step_files(self.steps.current, self.process_step_files(form))\n # check if the current step is the last step\n if self.steps.current == self.steps.last:\n # no more steps, render done view\n return self.render_done(form, **kwargs)\n else:\n # proceed to the next step\n return self.render_next_step(form)\n return self.render(form)\n", - "name": "post", - "docstring": "This method handles POST requests.\n\nThe wizard will render either the current step (if form validation\nwasn't successful), the next step (if the current step was stored\nsuccessful) or the done view (if no more steps are available)", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "FormMixin", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n url = self.success_url\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", + "kwargs": "self", + "line_number": 51 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 134, - "code": "def post(self, request, *args, **kwargs):\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "name": "post", - "docstring": "", "klass": [ - "ProcessFormView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "form_valid", + "docstring": "", + "code": "def form_valid(self, form):\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", + "kwargs": "self, form", + "line_number": 111 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 168, - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = kwargs\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 115 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 644, - "code": "def post(self, *args, **kwargs):\n \"\"\"\n Do a redirect if user presses the prev. step button. The rest of this\n is super'd from WizardView.\n \"\"\"\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n self.storage.current_step = wizard_goto_step\n return redirect(self.get_step_url(wizard_goto_step))\n return super(NamedUrlWizardView, self).post(*args, **kwargs)\n", - "name": "post", - "docstring": "Do a redirect if user presses the prev. step button. The rest of this\nis super'd from WizardView.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_class", + "docstring": "Returns the form class to use in this view", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n return model_forms.modelform_factory(model)\n", + "kwargs": "self", + "line_number": 71 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 397, - "code": "def process_step(self, form):\n \"\"\"\n This method is used to postprocess the form data. By default, it\n returns the raw `form.data` dictionary.\n \"\"\"\n return self.get_form_step_data(form)\n", - "name": "process_step", - "docstring": "This method is used to postprocess the form data. By default, it\nreturns the raw `form.data` dictionary.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instanciating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instanciating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 91 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 404, - "code": "def process_step_files(self, form):\n \"\"\"\n This method is used to postprocess the form files. By default, it\n returns the raw `form.files` dictionary.\n \"\"\"\n return self.get_form_step_files(form)\n", - "name": "process_step_files", - "docstring": "This method is used to postprocess the form files. By default, it\nreturns the raw `form.files` dictionary.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n url = self.success_url % self.object.__dict__\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 99 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 144, - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "name": "put", - "docstring": "", "klass": [ "ProcessFormView", "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 129 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 177, - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "put", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 134 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 540, - "code": "def render(self, form=None, **kwargs):\n \"\"\"\n Returns a ``HttpResponse`` containing all needed context data.\n \"\"\"\n form = form or self.get_form()\n context = self.get_context_data(form=form, **kwargs)\n return self.render_to_response(context)\n", - "name": "render", - "docstring": "Returns a ``HttpResponse`` containing all needed context data.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.4" ], - "kwargs": "self, form=None, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "put", + "docstring": "", + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 144 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 681, - "code": "def render_done(self, form, **kwargs):\n \"\"\"\n When rendering the done view, we have to redirect first (if the URL\n name doesn't fit).\n \"\"\"\n if kwargs.get('step', None) != self.done_step_name:\n return redirect(self.get_step_url(self.done_step_name))\n return super(NamedUrlWizardView, self).render_done(form, **kwargs)\n", - "name": "render_done", - "docstring": "When rendering the done view, we have to redirect first (if the URL\nname doesn't fit).", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "BaseListView", + "django.views.generic.list", "Django", "1.4" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty and len(self.object_list) == 0:\n raise Http404(_(u\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data(object_list=self.object_list)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 113 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 308, - "code": "def render_done(self, form, **kwargs):\n \"\"\"\n This method gets called when all forms passed. The method should also\n re-validate all steps to prevent manipulation. If any form don't\n validate, `render_revalidation_failure` should get called.\n If everything is fine call `done`.\n \"\"\"\n final_form_list = []\n # walk through the form list and try to validate the data again.\n for form_key in self.get_form_list():\n form_obj = self.get_form(step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key))\n if not form_obj.is_valid():\n return self.render_revalidation_failure(form_key, form_obj, **kwargs)\n final_form_list.append(form_obj)\n # render the done view and reset the wizard before returning the\n # response. This is needed to prevent from rendering done with the\n # same data twice.\n done_response = self.done(final_form_list, **kwargs)\n self.storage.reset()\n return done_response\n", - "name": "render_done", - "docstring": "This method gets called when all forms passed. The method should also\nre-validate all steps to prevent manipulation. If any form don't\nvalidate, `render_revalidation_failure` should get called.\nIf everything is fine call `done`.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_allow_empty", + "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 66 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 664, - "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n When using the NamedUrlWizardView, we have to redirect to update the\n browser's URL to match the shown step.\n \"\"\"\n next_step = self.get_next_step()\n self.storage.current_step = next_step\n return redirect(self.get_step_url(next_step))\n", - "name": "render_next_step", - "docstring": "When using the NamedUrlWizardView, we have to redirect to update the\nbrowser's URL to match the shown step.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list')\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n context.update(kwargs)\n if context_object_name is not None:\n context[context_object_name] = queryset\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 84 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 292, - "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n This method gets called when the next step/form should be rendered.\n `form` contains the last/current form.\n \"\"\"\n # get the form instance based on the data from the storage backend\n # (if available).\n next_step = self.steps.next\n new_form = self.get_form(next_step,\n data=self.storage.get_step_data(next_step),\n files=self.storage.get_step_files(next_step))\n # change the stored current step\n self.storage.current_step = next_step\n return self.render(new_form, **kwargs)\n", - "name": "render_next_step", - "docstring": "This method gets called when the next step/form should be rendered.\n`form` contains the last/current form.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return smart_str('%s_list' % object_list.model._meta.object_name.lower())\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 73 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 411, - "code": "def render_revalidation_failure(self, step, form, **kwargs):\n \"\"\"\n Gets called when a form doesn't validate when rendering the done\n view. By default, it changes the current step to failing forms step\n and renders the form.\n \"\"\"\n self.storage.current_step = step\n return self.render(form, **kwargs)\n", - "name": "render_revalidation_failure", - "docstring": "Gets called when a form doesn't validate when rendering the done\nview. By default, it changes the current step to failing forms step\nand renders the form.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], - "kwargs": "self, step, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 54 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 673, - "code": "def render_revalidation_failure(self, failed_step, form, **kwargs):\n \"\"\"\n When a step fails, we have to redirect the user to the first failing\n step.\n \"\"\"\n self.storage.current_step = failed_step\n return redirect(self.get_step_url(failed_step))\n", - "name": "render_revalidation_failure", - "docstring": "When a step fails, we have to redirect the user to the first failing\nstep.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], - "kwargs": "self, failed_step, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0, allow_empty_first_page=True):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(queryset, per_page, orphans=orphans, allow_empty_first_page=allow_empty_first_page)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True", + "line_number": 60 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 89, - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response with a template rendered with the given context.\n \"\"\"\n return self.response_class(\n request = self.request,\n template = self.get_template_names(),\n context = context,\n **response_kwargs\n )\n", - "name": "render_to_response", - "docstring": "Returns a response with a template rendered with the given context.", "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], - "kwargs": "self, context, **response_kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_queryset", + "docstring": "Get the list of items for this view. This must be an interable, and may\nbe a queryset (in which qs-specific behavior will be enabled).", + "code": "def get_queryset(self):\n \"\"\"\n Get the list of items for this view. This must be an interable, and may\n be a queryset (in which qs-specific behavior will be enabled).\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if hasattr(queryset, '_clone'):\n queryset = queryset._clone()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(u\"'%s' must define 'queryset' or 'model'\"\n % self.__class__.__name__)\n return queryset\n", + "kwargs": "self", + "line_number": 17 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 108, - "code": "def __repr__(self):\n return '<%s: forms: %s>' % (self.__class__.__name__, self.form_list)\n", - "name": "__repr__", - "docstring": "", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(queryset, page_size, allow_empty_first_page=self.get_allow_empty())\n page = self.kwargs.get('page') or self.request.GET.get('page') or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(u\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage:\n raise Http404(_(u'Invalid page (%(page_number)s)') % {\n 'page_number': page_number\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 33 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 40, - "code": "def __repr__(self):\n return '' % (self._wizard, self.all)\n", - "name": "__repr__", - "docstring": "", "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.4" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if get_template is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if get_template is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.object_name.lower(), self.template_name_suffix))\n return names\n", + "kwargs": "self", + "line_number": 126 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "NamedUrlWizardView", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" ], "child": [ - "NamedUrlSessionWizardView", + "CookieWizardView", "django.contrib.formtools.wizard.views", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "View", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], "child": [ - "RedirectView", - "django.views.generic.base", + "NamedUrlCookieWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], "child": [ - "FormView", - "django.views.generic.edit", + "NamedUrlSessionWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], "child": [ - "TemplateView", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "SessionWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.4" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.4" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.4" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.4" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.4" ], "child": [ - "BaseDateDetailView", + "ArchiveIndexView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "BaseDayArchiveView", + "BaseArchiveIndexView", "django.views.generic.dates", "Django", "1.4" ], "child": [ - "BaseTodayArchiveView", + "ArchiveIndexView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ "BaseDateListView", "django.views.generic.dates", @@ -4460,1040 +4401,1040 @@ "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "DateDetailView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "DetailView", - "django.views.generic.detail", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "CreateView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DateMixin", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 3 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", + "BaseDetailView", "django.views.generic.detail", "Django", "1.4" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 4 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.4" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "FormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "FormMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "TodayArchiveView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 3 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "ArchiveIndexView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "YearArchiveView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "WeekArchiveView", + "BaseTodayArchiveView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "DayArchiveView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "MonthArchiveView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "BaseDateListView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "SessionWizardView", - "django.contrib.formtools.wizard.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.4" ], "child": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "DateDetailView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "CookieWizardView", - "django.contrib.formtools.wizard.views", + "DateDetailView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.4" ], "child": [ - "NamedUrlCookieWizardView", - "django.contrib.formtools.wizard.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "View", - "django.views.generic.base", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateView", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.4" ], "child": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.4" ], "child": [ - "ArchiveIndexView", + "TodayArchiveView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "View", - "django.views.generic.base", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.4" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.4" ], "child": [ - "TodayArchiveView", + "WeekArchiveView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseMonthArchiveView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.4" ], "child": [ - "MonthArchiveView", + "WeekArchiveView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.4" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDayArchiveView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.4" ], "child": [ - "DayArchiveView", + "YearArchiveView", "django.views.generic.dates", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.4" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.4" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.4" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "View", - "django.views.generic.base", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.4" ], "child": [ - "TemplateView", - "django.views.generic.base", + "DetailView", + "django.views.generic.detail", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "View", + "TemplateResponseMixin", "django.views.generic.base", "Django", "1.4" ], "child": [ - "BaseListView", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.4" ], "child": [ - "BaseUpdateView", + "BaseCreateView", "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseUpdateView", + "ProcessFormView", "django.views.generic.edit", "Django", "1.4" ], "child": [ - "UpdateView", + "BaseCreateView", "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseFormView", + "DeletionMixin", "django.views.generic.edit", "Django", "1.4" ], "child": [ - "FormView", + "BaseDeleteView", "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.4" ], "child": [ - "DeleteView", + "BaseDeleteView", "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseCreateView", + "FormMixin", "django.views.generic.edit", "Django", "1.4" ], "child": [ - "CreateView", + "BaseFormView", "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseListView", - "django.views.generic.list", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.4" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseFormView", + "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.4" ], "child": [ - "ModelFormMixin", + "BaseUpdateView", "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.4" ], "child": [ - "BaseDeleteView", + "BaseUpdateView", "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDetailView", + "SingleObjectTemplateResponseMixin", "django.views.generic.detail", "Django", "1.4" ], "child": [ - "DetailView", - "django.views.generic.detail", + "CreateView", + "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "WeekMixin", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.4" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.4" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.4" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.4" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "DateMixin", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "1.4" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.4" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.4" ], "child": [ - "WeekArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ "View", "django.views.generic.base", @@ -5501,146 +5442,145 @@ "1.4" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "DayMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.4" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.4" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.4" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.4" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 3, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.4" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 3, "parent": [ - "DateMixin", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.4" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 4, "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.4" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.4" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } } ] diff --git a/cbv/fixtures/1.5.json b/cbv/fixtures/1.5.json index ca104fc2..fa63552e 100644 --- a/cbv/fixtures/1.5.json +++ b/cbv/fixtures/1.5.json @@ -1,4817 +1,4776 @@ [ { + "model": "cbv.projectversion", "fields": { "project": [ "Django" ], "version_number": "1.5", "sortable_version_number": "0105" - }, - "model": "cbv.projectversion", - "pk": null + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.5" ], + "name": "django.contrib.formtools.wizard.views", "docstring": "", - "name": "django.views.generic", - "filename": "/django/views/generic/__init__.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/contrib/formtools/wizard/views.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.5" ], + "name": "django.views.generic", "docstring": "", - "name": "django.views.generic.base", - "filename": "/django/views/generic/base.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/__init__.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.5" ], + "name": "django.views.generic.base", "docstring": "", - "name": "django.views.generic.dates", - "filename": "/django/views/generic/dates.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/base.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.5" ], + "name": "django.views.generic.dates", "docstring": "", - "name": "django.views.generic.detail", - "filename": "/django/views/generic/detail.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/dates.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.5" ], + "name": "django.views.generic.detail", "docstring": "", - "name": "django.views.generic.edit", - "filename": "/django/views/generic/edit.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/detail.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.5" ], + "name": "django.views.generic.edit", "docstring": "", - "name": "django.views.generic.list", - "filename": "/django/views/generic/list.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/edit.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.5" ], + "name": "django.views.generic.list", "docstring": "", - "name": "django.contrib.formtools.wizard.views", - "filename": "/django/contrib/formtools/wizard/views.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/list.py" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 568, - "name": "CookieWizardView", - "docs_url": "", - "docstring": "A WizardView with pre-configured CookieStorage backend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "CookieWizardView", + "docstring": "A WizardView with pre-configured CookieStorage backend.", + "line_number": 568, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 702, - "name": "NamedUrlCookieWizardView", - "docs_url": "", - "docstring": "A NamedUrlFormWizard with pre-configured CookieStorageBackend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "NamedUrlCookieWizardView", + "docstring": "A NamedUrlFormWizard with pre-configured CookieStorageBackend.", + "line_number": 702, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 695, - "name": "NamedUrlSessionWizardView", - "docs_url": "", - "docstring": "A NamedUrlWizardView with pre-configured SessionStorage backend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "NamedUrlSessionWizardView", + "docstring": "A NamedUrlWizardView with pre-configured SessionStorage backend.", + "line_number": 695, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 575, - "name": "NamedUrlWizardView", - "docs_url": "", - "docstring": "A WizardView with URL named steps support.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "NamedUrlWizardView", + "docstring": "A WizardView with URL named steps support.", + "line_number": 575, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 561, - "name": "SessionWizardView", - "docs_url": "", - "docstring": "A WizardView with pre-configured SessionStorage backend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "SessionWizardView", + "docstring": "A WizardView with pre-configured SessionStorage backend.", + "line_number": 561, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 30, - "name": "StepsHelper", - "docs_url": "", - "docstring": "", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "StepsHelper", + "docstring": "", + "line_number": 30, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 96, - "name": "WizardView", - "docs_url": "", - "docstring": "The WizardView is used to create multi-page forms and handles all the\nstorage and validation stuff. The wizard is based on Django's generic\nclass based views.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "WizardView", + "docstring": "The WizardView is used to create multi-page forms and handles all the\nstorage and validation stuff. The wizard is based on Django's generic\nclass based views.", + "line_number": 96, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 10, - "name": "GenericViewError", - "docs_url": "", - "docstring": "A problem in a generic view.", "module": [ "django.views.generic", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "GenericViewError", + "docstring": "A problem in a generic view.", + "line_number": 10, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 15, - "name": "ContextMixin", - "docs_url": "", - "docstring": "A default context mixin that passes the keyword arguments received by\nget_context_data as the template context.", "module": [ "django.views.generic.base", "Django", "1.5" ], - "import_path": "django.views.generic.base" - }, - "model": "cbv.klass", - "pk": null + "name": "ContextMixin", + "docstring": "A default context mixin that passes the keyword arguments received by\nget_context_data as the template context.", + "line_number": 15, + "import_path": "django.views.generic.base", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 157, - "name": "RedirectView", - "docs_url": "", - "docstring": "A view that provides a redirect on any GET request.", "module": [ "django.views.generic.base", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "RedirectView", + "docstring": "A view that provides a redirect on any GET request.", + "line_number": 157, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 110, - "name": "TemplateResponseMixin", - "docs_url": "", - "docstring": "A mixin that can be used to render a template.", "module": [ "django.views.generic.base", "Django", "1.5" ], - "import_path": "django.views.generic.base" - }, - "model": "cbv.klass", - "pk": null + "name": "TemplateResponseMixin", + "docstring": "A mixin that can be used to render a template.", + "line_number": 110, + "import_path": "django.views.generic.base", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 147, - "name": "TemplateView", - "docs_url": "", - "docstring": "A view that renders a template. This view will also pass into the context\nany keyword arguments passed by the url conf.", "module": [ "django.views.generic.base", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "TemplateView", + "docstring": "A view that renders a template. This view will also pass into the context\nany keyword arguments passed by the url conf.", + "line_number": 147, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 27, - "name": "View", - "docs_url": "", - "docstring": "Intentionally simple parent class for all views. Only implements\ndispatch-by-method and simple sanity checking.", "module": [ "django.views.generic.base", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "View", + "docstring": "Intentionally simple parent class for all views. Only implements\ndispatch-by-method and simple sanity checking.", + "line_number": 27, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 420, - "name": "ArchiveIndexView", - "docs_url": "", - "docstring": "Top-level archive of date-based items.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "ArchiveIndexView", + "docstring": "Top-level archive of date-based items.", + "line_number": 420, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 399, - "name": "BaseArchiveIndexView", - "docs_url": "", - "docstring": "Base class for archives of date-based items.\n\nRequires a response mixin.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseArchiveIndexView", + "docstring": "Base class for archives of date-based items.\n\nRequires a response mixin.", + "line_number": 399, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 626, - "name": "BaseDateDetailView", - "docs_url": "", - "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDateDetailView", + "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", + "line_number": 626, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 325, - "name": "BaseDateListView", - "docs_url": "", - "docstring": "Abstract base class for date-based views displaying a list of objects.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDateListView", + "docstring": "Abstract base class for date-based views displaying a list of objects.", + "line_number": 325, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 565, - "name": "BaseDayArchiveView", - "docs_url": "", - "docstring": "List of objects published on a given day.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDayArchiveView", + "docstring": "List of objects published on a given day.", + "line_number": 565, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 479, - "name": "BaseMonthArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseMonthArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 479, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 607, - "name": "BaseTodayArchiveView", - "docs_url": "", - "docstring": "List of objects published today.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseTodayArchiveView", + "docstring": "List of objects published today.", + "line_number": 607, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 520, - "name": "BaseWeekArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given week.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseWeekArchiveView", + "docstring": "List of objects published in a given week.", + "line_number": 520, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 427, - "name": "BaseYearArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseYearArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 427, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 660, - "name": "DateDetailView", - "docs_url": "", - "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DateDetailView", + "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", + "line_number": 660, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 257, - "name": "DateMixin", - "docs_url": "", - "docstring": "Mixin class for views manipulating date-based data.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "DateMixin", + "docstring": "Mixin class for views manipulating date-based data.", + "line_number": 257, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 600, - "name": "DayArchiveView", - "docs_url": "", - "docstring": "List of objects published on a given day.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DayArchiveView", + "docstring": "List of objects published on a given day.", + "line_number": 600, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 131, - "name": "DayMixin", - "docs_url": "", - "docstring": "Mixin for views manipulating day-based data.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "DayMixin", + "docstring": "Mixin for views manipulating day-based data.", + "line_number": 131, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 513, - "name": "MonthArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "MonthArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 513, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 72, - "name": "MonthMixin", - "docs_url": "", - "docstring": "Mixin for views manipulating month-based data.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "MonthMixin", + "docstring": "Mixin for views manipulating month-based data.", + "line_number": 72, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 619, - "name": "TodayArchiveView", - "docs_url": "", - "docstring": "List of objects published today.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "TodayArchiveView", + "docstring": "List of objects published today.", + "line_number": 619, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 558, - "name": "WeekArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given week.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "WeekArchiveView", + "docstring": "List of objects published in a given week.", + "line_number": 558, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 187, - "name": "WeekMixin", - "docs_url": "", - "docstring": "Mixin for views manipulating week-based data.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "WeekMixin", + "docstring": "Mixin for views manipulating week-based data.", + "line_number": 187, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 472, - "name": "YearArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "YearArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 472, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 16, - "name": "YearMixin", - "docs_url": "", - "docstring": "Mixin for views manipulating year-based data.", "module": [ "django.views.generic.dates", "Django", "1.5" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "YearMixin", + "docstring": "Mixin for views manipulating year-based data.", + "line_number": 16, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 103, - "name": "BaseDetailView", - "docs_url": "", - "docstring": "A base view for displaying a single object", "module": [ "django.views.generic.detail", "Django", "1.5" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDetailView", + "docstring": "A base view for displaying a single object", + "line_number": 103, + "import_path": "django.views.generic.detail", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 159, - "name": "DetailView", - "docs_url": "", - "docstring": "Render a \"detail\" view of an object.\n\nBy default this is a model instance looked up from `self.queryset`, but the\nview will support display of *any* object by overriding `self.get_object()`.", "module": [ "django.views.generic.detail", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DetailView", + "docstring": "Render a \"detail\" view of an object.\n\nBy default this is a model instance looked up from `self.queryset`, but the\nview will support display of *any* object by overriding `self.get_object()`.", + "line_number": 159, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 10, - "name": "SingleObjectMixin", - "docs_url": "", - "docstring": "Provides the ability to retrieve a single object for further manipulation.", "module": [ "django.views.generic.detail", "Django", "1.5" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "SingleObjectMixin", + "docstring": "Provides the ability to retrieve a single object for further manipulation.", + "line_number": 10, + "import_path": "django.views.generic.detail", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 113, - "name": "SingleObjectTemplateResponseMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.detail", "Django", "1.5" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "SingleObjectTemplateResponseMixin", + "docstring": "", + "line_number": 113, + "import_path": "django.views.generic.detail", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 187, - "name": "BaseCreateView", - "docs_url": "", - "docstring": "Base view for creating an new object instance.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.5" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseCreateView", + "docstring": "Base view for creating an new object instance.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 187, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 260, - "name": "BaseDeleteView", - "docs_url": "", - "docstring": "Base view for deleting an object.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.5" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDeleteView", + "docstring": "Base view for deleting an object.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 260, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 175, - "name": "BaseFormView", - "docs_url": "", - "docstring": "A base view for displaying a form", "module": [ "django.views.generic.edit", "Django", "1.5" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseFormView", + "docstring": "A base view for displaying a form", + "line_number": 175, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 210, - "name": "BaseUpdateView", - "docs_url": "", - "docstring": "Base view for updating an existing object.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.5" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseUpdateView", + "docstring": "Base view for updating an existing object.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 210, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 202, - "name": "CreateView", - "docs_url": "", - "docstring": "View for creating a new object instance,\nwith a response rendered by template.", "module": [ "django.views.generic.edit", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "CreateView", + "docstring": "View for creating a new object instance,\nwith a response rendered by template.", + "line_number": 202, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 268, - "name": "DeleteView", - "docs_url": "", - "docstring": "View for deleting an object retrieved with `self.get_object()`,\nwith a response rendered by template.", "module": [ "django.views.generic.edit", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DeleteView", + "docstring": "View for deleting an object retrieved with `self.get_object()`,\nwith a response rendered by template.", + "line_number": 268, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 233, - "name": "DeletionMixin", - "docs_url": "", - "docstring": "A mixin providing the ability to delete objects", "module": [ "django.views.generic.edit", "Django", "1.5" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "DeletionMixin", + "docstring": "A mixin providing the ability to delete objects", + "line_number": 233, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 10, - "name": "FormMixin", - "docs_url": "", - "docstring": "A mixin that provides a way to show and handle a form in a request.", "module": [ "django.views.generic.edit", "Django", "1.5" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "FormMixin", + "docstring": "A mixin that provides a way to show and handle a form in a request.", + "line_number": 10, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 181, - "name": "FormView", - "docs_url": "", - "docstring": "A view for displaying a form, and rendering a template response.", "module": [ "django.views.generic.edit", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "FormView", + "docstring": "A view for displaying a form, and rendering a template response.", + "line_number": 181, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 75, - "name": "ModelFormMixin", - "docs_url": "", - "docstring": "A mixin that provides a way to show and handle a modelform in a request.", "module": [ "django.views.generic.edit", "Django", "1.5" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "ModelFormMixin", + "docstring": "A mixin that provides a way to show and handle a modelform in a request.", + "line_number": 75, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 145, - "name": "ProcessFormView", - "docs_url": "", - "docstring": "A mixin that renders a form on GET and processes it on POST.", "module": [ "django.views.generic.edit", "Django", "1.5" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "ProcessFormView", + "docstring": "A mixin that renders a form on GET and processes it on POST.", + "line_number": 145, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 225, - "name": "UpdateView", - "docs_url": "", - "docstring": "View for updating an object,\nwith a response rendered by template.", "module": [ "django.views.generic.edit", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "UpdateView", + "docstring": "View for updating an object,\nwith a response rendered by template.", + "line_number": 225, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 119, - "name": "BaseListView", - "docs_url": "", - "docstring": "A base view for displaying a list of objects.", "module": [ "django.views.generic.list", "Django", "1.5" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseListView", + "docstring": "A base view for displaying a list of objects.", + "line_number": 119, + "import_path": "django.views.generic.list", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 172, - "name": "ListView", - "docs_url": "", - "docstring": "Render some list of objects, set by `self.model` or `self.queryset`.\n`self.queryset` can actually be any iterable of items, not just a queryset.", "module": [ "django.views.generic.list", "Django", "1.5" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "ListView", + "docstring": "Render some list of objects, set by `self.model` or `self.queryset`.\n`self.queryset` can actually be any iterable of items, not just a queryset.", + "line_number": 172, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 10, - "name": "MultipleObjectMixin", - "docs_url": "", - "docstring": "A mixin for views manipulating multiple objects.", "module": [ "django.views.generic.list", "Django", "1.5" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "MultipleObjectMixin", + "docstring": "A mixin for views manipulating multiple objects.", + "line_number": 10, + "import_path": "django.views.generic.list", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 143, - "name": "MultipleObjectTemplateResponseMixin", - "docs_url": "", - "docstring": "Mixin for responding with a template and list of objects.", "module": [ "django.views.generic.list", "Django", "1.5" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "MultipleObjectTemplateResponseMixin", + "docstring": "Mixin for responding with a template and list of objects.", + "line_number": 143, + "import_path": "django.views.generic.list", + "docs_url": "" + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", + "CookieWizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "", - "name": "all" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "NamedUrlCookieWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "False", - "name": "allow_empty" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "NamedUrlSessionWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "True", - "name": "allow_empty" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DateMixin", - "django.views.generic.dates", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "False", - "name": "allow_future" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "done_step_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "", - "name": "args" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "url_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", + "SessionWizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "None", - "name": "condition_dict" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "None", - "name": "content_type" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "all", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "'latest'", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "count", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "None", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "current", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "None", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "first", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "StepsHelper", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "", - "name": "count" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "index", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "StepsHelper", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "", - "name": "current" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "last", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DateMixin", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "None", - "name": "date_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "next", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "'month'", - "name": "date_list_period" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "prev", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "'day'", - "name": "date_list_period" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "step0", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "'year'", - "name": "date_list_period" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "step1", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], + "name": "condition_dict", "value": "None", - "name": "day" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { - "fields": { - "line_number": -1, - "klass": [ - "DayMixin", - "django.views.generic.dates", - "Django", - "1.5" - ], - "value": "'%d'", - "name": "day_format" - }, "model": "cbv.klassattribute", - "pk": null -}, -{ + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "", - "name": "__delattr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "form_list", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlWizardView", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], + "name": "initial_dict", "value": "None", - "name": "done_step_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "", - "name": "first" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "instance_dict", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], + "name": "storage_name", "value": "None", - "name": "form_class" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "value": "None", - "name": "form_list" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name", + "value": "'formtools/wizard/wizard_form.html'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.5" ], - "value": "", - "name": "__getattribute__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "args", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.5" ], - "value": "", - "name": "__getitem__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__delattr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.5" ], - "value": "", - "name": "__getslice__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__getattribute__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "View", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "1.5" ], - "value": "[u'get', u'post', u'put', u'delete', u'head', u'options', u'trace']", - "name": "http_method_names" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__getitem__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.5" ], - "value": "", - "name": "index" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__getslice__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.5" ], + "name": "__init__", "value": "", - "name": "__init__" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.5" ], - "value": "{}", - "name": "initial" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "message", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.5" ], - "value": "None", - "name": "initial_dict" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__reduce__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.5" ], - "value": "None", - "name": "instance_dict" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__repr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.5" ], - "value": "", - "name": "last" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__setattr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.5" ], - "value": "False", - "name": "make_object_list" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__setstate__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.5" ], - "value": "", - "name": "message" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__str__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "1.5" ], - "value": "None", - "name": "model" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__unicode__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "1.5" ], - "value": "None", - "name": "model" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "permanent", + "value": "True", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.5" ], - "value": "None", - "name": "month" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "query_string", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.5" ], - "value": "'%b'", - "name": "month_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.5" ], - "value": "", - "name": "next" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "content_type", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.5" ], - "value": "'page'", - "name": "page_kwarg" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "response_class", + "value": "", + "line_number": 137 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.5" ], + "name": "template_name", "value": "None", - "name": "paginate_by" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": 15, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "1.5" ], - "value": "", - "name": "paginator_class" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "http_method_names", + "value": "[u'get', u'post', u'put', u'delete', u'head', u'options', u'trace']", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.5" ], - "value": "True", - "name": "permanent" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.5" ], - "value": "'pk'", - "name": "pk_url_kwarg" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "context_object_name", + "value": "'latest'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" ], - "value": "", - "name": "prev" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "allow_empty", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" ], - "value": "None", - "name": "queryset" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "date_list_period", + "value": "'year'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.5" ], - "value": "None", - "name": "queryset" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "date_list_period", + "value": "'day'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.5" ], - "value": "False", - "name": "query_string" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "date_list_period", + "value": "'month'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.5" ], - "value": "", - "name": "__reduce__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "make_object_list", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DateMixin", + "django.views.generic.dates", "Django", "1.5" ], - "value": "", - "name": "__repr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "allow_future", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": 137, "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DateMixin", + "django.views.generic.dates", "Django", "1.5" ], - "value": "", - "name": "response_class" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "date_field", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.5" ], - "value": "", - "name": "__setattr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_day'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DayMixin", + "django.views.generic.dates", "Django", "1.5" ], - "value": "", - "name": "__setstate__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "day", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "1.5" ], - "value": "'slug'", - "name": "slug_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "day_format", + "value": "'%d'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.5" ], - "value": "'slug'", - "name": "slug_url_kwarg" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_month'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "MonthMixin", + "django.views.generic.dates", "Django", "1.5" ], - "value": "", - "name": "step0" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "month", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "MonthMixin", + "django.views.generic.dates", "Django", "1.5" ], - "value": "", - "name": "step1" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "month_format", + "value": "'%b'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlSessionWizardView", - "django.contrib.formtools.wizard.views", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.5" ], - "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_day'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SessionWizardView", - "django.contrib.formtools.wizard.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.5" ], - "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_week'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.5" ], + "name": "week", "value": "None", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { - "fields": { - "line_number": -1, - "klass": [ - "CookieWizardView", - "django.contrib.formtools.wizard.views", - "Django", - "1.5" - ], - "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", - "name": "storage_name" - }, "model": "cbv.klassattribute", - "pk": null -}, -{ + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlCookieWizardView", - "django.contrib.formtools.wizard.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.5" ], - "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "week_format", + "value": "'%U'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.5" ], - "value": "", - "name": "__str__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_year'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.5" ], + "name": "year", "value": "None", - "name": "success_url" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.5" ], - "value": "None", - "name": "success_url" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "year_format", + "value": "'%Y'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.5" ], - "value": "'formtools/wizard/wizard_form.html'", - "name": "template_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "context_object_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.5" ], + "name": "model", "value": "None", - "name": "template_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "1.5" ], - "value": "None", - "name": "template_name_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "pk_url_kwarg", + "value": "'pk'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.5" ], - "value": "'_archive_year'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "queryset", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DeleteView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.5" ], - "value": "'_confirm_delete'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "slug_field", + "value": "'slug'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "CreateView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.5" ], - "value": "'_form'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "slug_url_kwarg", + "value": "'slug'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.5" ], - "value": "'_list'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_field", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "SingleObjectTemplateResponseMixin", "django.views.generic.detail", "Django", "1.5" ], + "name": "template_name_suffix", "value": "'_detail'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "1.5" ], - "value": "'_archive'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_form'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.5" ], - "value": "'_archive_day'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_confirm_delete'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.5" ], - "value": "'_archive_month'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "success_url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.5" ], - "value": "'_archive_day'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "form_class", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.5" ], - "value": "'_archive_week'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "initial", + "value": "{}", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "UpdateView", + "FormMixin", "django.views.generic.edit", "Django", "1.5" ], - "value": "'_form'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "success_url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "UpdateView", + "django.views.generic.edit", "Django", "1.5" ], - "value": "", - "name": "__unicode__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_form'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], - "value": "None", - "name": "url" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "allow_empty", + "value": "True", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], + "name": "context_object_name", "value": "None", - "name": "url_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], + "name": "model", "value": "None", - "name": "week" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], - "value": "'%U'", - "name": "week_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "page_kwarg", + "value": "'page'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], + "name": "paginate_by", "value": "None", - "name": "year" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], - "value": "'%Y'", - "name": "year_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "paginator_class", + "value": "", + "line_number": 15 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": 106, - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", - "name": "_allowed_methods", - "docstring": "", "klass": [ - "View", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "queryset", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": 45, - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n # sanitize keyword arguments\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "name": "as_view", - "docstring": "Main entry point for a request-response process.", "klass": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.5" ], - "kwargs": "cls, **initkwargs" - }, - "model": "cbv.method", - "pk": null + "name": "template_name_suffix", + "value": "'_list'", + "line_number": -1 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 112, - "code": "@classonlymethod\ndef as_view(cls, *args, **kwargs):\n \"\"\"\n This method is used within urls.py to create unique wizardview\n instances for every request. We need to override this method because\n we add some kwargs which are needed to make the wizardview usable.\n \"\"\"\n initkwargs = cls.get_initkwargs(*args, **kwargs)\n return super(WizardView, cls).as_view(**initkwargs)\n", - "name": "as_view", - "docstring": "This method is used within urls.py to create unique wizardview\ninstances for every request. We need to override this method because\nwe add some kwargs which are needed to make the wizardview usable.", "klass": [ - "WizardView", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "cls, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "This renders the form or, if needed, does the http redirects.", + "code": "def get(self, *args, **kwargs):\n \"\"\"\n This renders the form or, if needed, does the http redirects.\n \"\"\"\n step_url = kwargs.get('step', None)\n if step_url is None:\n if 'reset' in self.request.GET:\n self.storage.reset()\n self.storage.current_step = self.steps.first\n if self.request.GET:\n query_string = \"?%s\" % self.request.GET.urlencode()\n else:\n query_string = \"\"\n return redirect(self.get_step_url(self.steps.current)\n + query_string)\n # is the current step the \"done\" name/view?\n elif step_url == self.done_step_name:\n last_step = self.steps.last\n return self.render_done(self.get_form(step=last_step,\n data=self.storage.get_step_data(last_step),\n files=self.storage.get_step_files(last_step)\n ), **kwargs)\n # is the url step name not equal to the step in the storage?\n # if yes, change the step in the storage (if name exists)\n elif step_url == self.steps.current:\n # URL step name and storage step name are equal, render!\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n elif step_url in self.get_form_list():\n self.storage.current_step = step_url\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n # invalid step name, reset to first and redirect.\n else:\n self.storage.current_step = self.steps.first\n return redirect(self.get_step_url(self.steps.first))\n", + "kwargs": "self, *args, **kwargs", + "line_number": 603 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 204, - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "delete", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "NamedUrlWizardView provides the url_name of this wizard in the context\ndict `wizard`.", + "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n NamedUrlWizardView provides the url_name of this wizard in the context\n dict `wizard`.\n \"\"\"\n context = super(NamedUrlWizardView, self).get_context_data(form=form, **kwargs)\n context['wizard']['url_name'] = self.url_name\n return context\n", + "kwargs": "self, form, **kwargs", + "line_number": 659 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 239, - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n self.object.delete()\n return HttpResponseRedirect(self.get_success_url())\n", - "name": "delete", - "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_initkwargs", + "docstring": "We require a url_name to reverse URLs later. Additionally users can\npass a done_step_name to change the URL name of the \"done\" view.", + "code": "@classmethod\ndef get_initkwargs(cls, *args, **kwargs):\n \"\"\"\n We require a url_name to reverse URLs later. Additionally users can\n pass a done_step_name to change the URL name of the \"done\" view.\n \"\"\"\n assert 'url_name' in kwargs, 'URL name is needed to resolve correct wizard URLs'\n extra_kwargs = {\n 'done_step_name': kwargs.pop('done_step_name', 'done'),\n 'url_name': kwargs.pop('url_name'),\n }\n initkwargs = super(NamedUrlWizardView, cls).get_initkwargs(*args, **kwargs)\n initkwargs.update(extra_kwargs)\n assert initkwargs['done_step_name'] not in initkwargs['form_list'], \\\n 'step name \"%s\" is reserved for \"done\" view' % initkwargs['done_step_name']\n return initkwargs\n", + "kwargs": "cls, *args, **kwargs", + "line_number": 582 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 35, - "code": "def __dir__(self):\n return self.all\n", - "name": "__dir__", - "docstring": "", "klass": [ - "StepsHelper", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_step_url", + "docstring": "", + "code": "def get_step_url(self, step):\n return reverse(self.url_name, kwargs={'step': step})\n", + "kwargs": "self, step", + "line_number": 600 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 212, - "code": "def dispatch(self, request, *args, **kwargs):\n \"\"\"\n This method gets called by the routing engine. The first argument is\n `request` which contains a `HttpRequest` instance.\n The request is stored in `self.request` for later use. The storage\n instance is stored in `self.storage`.\n After processing the request using the `dispatch` method, the\n response gets updated by the storage engine (for example add cookies).\n \"\"\"\n # add the storage engine to the current wizardview instance\n self.prefix = self.get_prefix(*args, **kwargs)\n self.storage = get_storage(self.storage_name, self.prefix, request,\n getattr(self, 'file_storage', None))\n self.steps = StepsHelper(self)\n response = super(WizardView, self).dispatch(request, *args, **kwargs)\n # update the response (e.g. adding cookies)\n self.storage.update_response(response)\n return response\n", - "name": "dispatch", - "docstring": "This method gets called by the routing engine. The first argument is\n`request` which contains a `HttpRequest` instance.\nThe request is stored in `self.request` for later use. The storage\ninstance is stored in `self.storage`.\n\nAfter processing the request using the `dispatch` method, the\nresponse gets updated by the storage engine (for example add cookies).", "klass": [ - "WizardView", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "Do a redirect if user presses the prev. step button. The rest of this\nis super'd from WizardView.", + "code": "def post(self, *args, **kwargs):\n \"\"\"\n Do a redirect if user presses the prev. step button. The rest of this\n is super'd from WizardView.\n \"\"\"\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n self.storage.current_step = wizard_goto_step\n return redirect(self.get_step_url(wizard_goto_step))\n return super(NamedUrlWizardView, self).post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 648 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 78, - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", - "name": "dispatch", - "docstring": "", "klass": [ - "View", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "render_done", + "docstring": "When rendering the done view, we have to redirect first (if the URL\nname doesn't fit).", + "code": "def render_done(self, form, **kwargs):\n \"\"\"\n When rendering the done view, we have to redirect first (if the URL\n name doesn't fit).\n \"\"\"\n if kwargs.get('step', None) != self.done_step_name:\n return redirect(self.get_step_url(self.done_step_name))\n return super(NamedUrlWizardView, self).render_done(form, **kwargs)\n", + "kwargs": "self, form, **kwargs", + "line_number": 685 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 552, - "code": "def done(self, form_list, **kwargs):\n \"\"\"\n This method must be overridden by a subclass to process to form data\n after processing all steps.\n \"\"\"\n raise NotImplementedError(\"Your %s class has not defined a done() \"\n \"method, which is required.\" % self.__class__.__name__)\n", - "name": "done", - "docstring": "This method must be overridden by a subclass to process to form data\nafter processing all steps.", "klass": [ - "WizardView", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, form_list, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "render_next_step", + "docstring": "When using the NamedUrlWizardView, we have to redirect to update the\nbrowser's URL to match the shown step.", + "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n When using the NamedUrlWizardView, we have to redirect to update the\n browser's URL to match the shown step.\n \"\"\"\n next_step = self.get_next_step()\n self.storage.current_step = next_step\n return redirect(self.get_step_url(next_step))\n", + "kwargs": "self, form, **kwargs", + "line_number": 668 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 67, - "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "name": "form_invalid", - "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "render_revalidation_failure", + "docstring": "When a step fails, we have to redirect the user to the first failing\nstep.", + "code": "def render_revalidation_failure(self, failed_step, form, **kwargs):\n \"\"\"\n When a step fails, we have to redirect the user to the first failing\n step.\n \"\"\"\n self.storage.current_step = failed_step\n return redirect(self.get_step_url(failed_step))\n", + "kwargs": "self, failed_step, form, **kwargs", + "line_number": 677 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 61, - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "__dir__", + "docstring": "", + "code": "def __dir__(self):\n return self.all\n", + "kwargs": "self", + "line_number": 35 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 123, - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", - "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "__init__", + "docstring": "", + "code": "def __init__(self, wizard):\n self._wizard = wizard\n", + "kwargs": "self, wizard", + "line_number": 32 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 107, - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "__len__", + "docstring": "", + "code": "def __len__(self):\n return self.count\n", + "kwargs": "self", + "line_number": 38 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 603, - "code": "def get(self, *args, **kwargs):\n \"\"\"\n This renders the form or, if needed, does the http redirects.\n \"\"\"\n step_url = kwargs.get('step', None)\n if step_url is None:\n if 'reset' in self.request.GET:\n self.storage.reset()\n self.storage.current_step = self.steps.first\n if self.request.GET:\n query_string = \"?%s\" % self.request.GET.urlencode()\n else:\n query_string = \"\"\n return redirect(self.get_step_url(self.steps.current)\n + query_string)\n # is the current step the \"done\" name/view?\n elif step_url == self.done_step_name:\n last_step = self.steps.last\n return self.render_done(self.get_form(step=last_step,\n data=self.storage.get_step_data(last_step),\n files=self.storage.get_step_files(last_step)\n ), **kwargs)\n # is the url step name not equal to the step in the storage?\n # if yes, change the step in the storage (if name exists)\n elif step_url == self.steps.current:\n # URL step name and storage step name are equal, render!\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n elif step_url in self.get_form_list():\n self.storage.current_step = step_url\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n # invalid step name, reset to first and redirect.\n else:\n self.storage.current_step = self.steps.first\n return redirect(self.get_step_url(self.steps.first))\n", - "name": "get", - "docstring": "This renders the form or, if needed, does the http redirects.", "klass": [ - "NamedUrlWizardView", + "StepsHelper", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "__repr__", + "docstring": "", + "code": "def __repr__(self):\n return '' % (self._wizard, self.all)\n", + "kwargs": "self", + "line_number": 41 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 152, - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "TemplateView", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "as_view", + "docstring": "This method is used within urls.py to create unique wizardview\ninstances for every request. We need to override this method because\nwe add some kwargs which are needed to make the wizardview usable.", + "code": "@classonlymethod\ndef as_view(cls, *args, **kwargs):\n \"\"\"\n This method is used within urls.py to create unique wizardview\n instances for every request. We need to override this method because\n we add some kwargs which are needed to make the wizardview usable.\n \"\"\"\n initkwargs = cls.get_initkwargs(*args, **kwargs)\n return super(WizardView, cls).as_view(**initkwargs)\n", + "kwargs": "cls, *args, **kwargs", + "line_number": 112 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 233, - "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n This method handles GET requests.\n If a GET request reaches this point, the wizard assumes that the user\n just starts at the first step or wants to restart the process.\n The data of the wizard will be resetted before rendering the first step.\n \"\"\"\n self.storage.reset()\n # reset the current step to the first step.\n self.storage.current_step = self.steps.first\n return self.render(self.get_form())\n", - "name": "get", - "docstring": "This method handles GET requests.\n\nIf a GET request reaches this point, the wizard assumes that the user\njust starts at the first step or wants to restart the process.\nThe data of the wizard will be resetted before rendering the first step.", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "dispatch", + "docstring": "This method gets called by the routing engine. The first argument is\n`request` which contains a `HttpRequest` instance.\nThe request is stored in `self.request` for later use. The storage\ninstance is stored in `self.storage`.\n\nAfter processing the request using the `dispatch` method, the\nresponse gets updated by the storage engine (for example add cookies).", + "code": "def dispatch(self, request, *args, **kwargs):\n \"\"\"\n This method gets called by the routing engine. The first argument is\n `request` which contains a `HttpRequest` instance.\n The request is stored in `self.request` for later use. The storage\n instance is stored in `self.storage`.\n After processing the request using the `dispatch` method, the\n response gets updated by the storage engine (for example add cookies).\n \"\"\"\n # add the storage engine to the current wizardview instance\n self.prefix = self.get_prefix(*args, **kwargs)\n self.storage = get_storage(self.storage_name, self.prefix, request,\n getattr(self, 'file_storage', None))\n self.steps = StepsHelper(self)\n response = super(WizardView, self).dispatch(request, *args, **kwargs)\n # update the response (e.g. adding cookies)\n self.storage.update_response(response)\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 212 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 123, - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if (self.get_paginate_by(self.object_list) is not None\n and hasattr(self.object_list, 'exists')):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data(object_list=self.object_list)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseListView", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "done", + "docstring": "This method must be overridden by a subclass to process to form data\nafter processing all steps.", + "code": "def done(self, form_list, **kwargs):\n \"\"\"\n This method must be overridden by a subclass to process to form data\n after processing all steps.\n \"\"\"\n raise NotImplementedError(\"Your %s class has not defined a done() \"\n \"method, which is required.\" % self.__class__.__name__)\n", + "kwargs": "self, form_list, **kwargs", + "line_number": 552 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 193, - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "This method handles GET requests.\n\nIf a GET request reaches this point, the wizard assumes that the user\njust starts at the first step or wants to restart the process.\nThe data of the wizard will be resetted before rendering the first step.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n This method handles GET requests.\n If a GET request reaches this point, the wizard assumes that the user\n just starts at the first step or wants to restart the process.\n The data of the wizard will be resetted before rendering the first step.\n \"\"\"\n self.storage.reset()\n # reset the current step to the first step.\n self.storage.current_step = self.steps.first\n return self.render(self.get_form())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 233 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 216, - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_all_cleaned_data", + "docstring": "Returns a merged dictionary of all step cleaned_data dictionaries.\nIf a step contains a `FormSet`, the key will be prefixed with\n'formset-' and contain a list of the formset cleaned_data dictionaries.", + "code": "def get_all_cleaned_data(self):\n \"\"\"\n Returns a merged dictionary of all step cleaned_data dictionaries.\n If a step contains a `FormSet`, the key will be prefixed with\n 'formset-' and contain a list of the formset cleaned_data dictionaries.\n \"\"\"\n cleaned_data = {}\n for form_key in self.get_form_list():\n form_obj = self.get_form(\n step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key)\n )\n if form_obj.is_valid():\n if isinstance(form_obj.cleaned_data, (tuple, list)):\n cleaned_data.update({\n 'formset-%s' % form_key: form_obj.cleaned_data\n })\n else:\n cleaned_data.update(form_obj.cleaned_data)\n return cleaned_data\n", + "kwargs": "self", + "line_number": 438 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 180, - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(**kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s', self.request.path,\n extra={\n 'status_code': 410,\n 'request': self.request\n })\n return http.HttpResponseGone()\n", - "name": "get", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_cleaned_data_for_step", + "docstring": "Returns the cleaned data for a given `step`. Before returning the\ncleaned data, the stored values are revalidated through the form.\nIf the data doesn't validate, None will be returned.", + "code": "def get_cleaned_data_for_step(self, step):\n \"\"\"\n Returns the cleaned data for a given `step`. Before returning the\n cleaned data, the stored values are revalidated through the form.\n If the data doesn't validate, None will be returned.\n \"\"\"\n if step in self.form_list:\n form_obj = self.get_form(step=step,\n data=self.storage.get_step_data(step),\n files=self.storage.get_step_files(step))\n if form_obj.is_valid():\n return form_obj.cleaned_data\n return None\n", + "kwargs": "self, step", + "line_number": 460 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 149, - "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n return self.render_to_response(self.get_context_data(form=form))\n", - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Returns the template context for a step. You can overwrite this method\nto add more data for all or some steps. This method returns a\ndictionary containing the rendered form step. Available template\ncontext variables are:\n\n * all extra data stored in the storage backend\n * `form` - form instance of the current step\n * `wizard` - the wizard instance itself\n\nExample:\n\n.. code-block:: python\n\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context", + "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n Returns the template context for a step. You can overwrite this method\n to add more data for all or some steps. This method returns a\n dictionary containing the rendered form step. Available template\n context variables are:\n * all extra data stored in the storage backend\n * `form` - form instance of the current step\n * `wizard` - the wizard instance itself\n Example:\n .. code-block:: python\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context\n \"\"\"\n context = super(WizardView, self).get_context_data(form=form, **kwargs)\n context.update(self.storage.extra_data)\n context['wizard'] = {\n 'form': form,\n 'steps': self.steps,\n 'management_form': ManagementForm(prefix=self.prefix, initial={\n 'current_step': self.steps.current,\n }),\n }\n return context\n", + "kwargs": "self, form, **kwargs", + "line_number": 511 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 332, - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form", + "docstring": "Constructs the form for a given `step`. If no `step` is defined, the\ncurrent step will be determined automatically.\n\nThe form will be initialized using the `data` argument to prefill the\nnew form. If needed, instance or queryset (for `ModelForm` or\n`ModelFormSet`) will be added too.", + "code": "def get_form(self, step=None, data=None, files=None):\n \"\"\"\n Constructs the form for a given `step`. If no `step` is defined, the\n current step will be determined automatically.\n The form will be initialized using the `data` argument to prefill the\n new form. If needed, instance or queryset (for `ModelForm` or\n `ModelFormSet`) will be added too.\n \"\"\"\n if step is None:\n step = self.steps.current\n # prepare the kwargs for the form instance.\n kwargs = self.get_form_kwargs(step)\n kwargs.update({\n 'data': data,\n 'files': files,\n 'prefix': self.get_form_prefix(step, self.form_list[step]),\n 'initial': self.get_form_initial(step),\n })\n if issubclass(self.form_list[step], forms.ModelForm):\n # If the form is based on ModelForm, add instance if available\n # and not previously set.\n kwargs.setdefault('instance', self.get_form_instance(step))\n elif issubclass(self.form_list[step], forms.models.BaseModelFormSet):\n # If the form is based on ModelFormSet, add queryset if available\n # and not previous set.\n kwargs.setdefault('queryset', self.get_form_instance(step))\n return self.form_list[step](**kwargs)\n", + "kwargs": "self, step=None, data=None, files=None", + "line_number": 372 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 438, - "code": "def get_all_cleaned_data(self):\n \"\"\"\n Returns a merged dictionary of all step cleaned_data dictionaries.\n If a step contains a `FormSet`, the key will be prefixed with\n 'formset-' and contain a list of the formset cleaned_data dictionaries.\n \"\"\"\n cleaned_data = {}\n for form_key in self.get_form_list():\n form_obj = self.get_form(\n step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key)\n )\n if form_obj.is_valid():\n if isinstance(form_obj.cleaned_data, (tuple, list)):\n cleaned_data.update({\n 'formset-%s' % form_key: form_obj.cleaned_data\n })\n else:\n cleaned_data.update(form_obj.cleaned_data)\n return cleaned_data\n", - "name": "get_all_cleaned_data", - "docstring": "Returns a merged dictionary of all step cleaned_data dictionaries.\nIf a step contains a `FormSet`, the key will be prefixed with\n'formset-' and contain a list of the formset cleaned_data dictionaries.", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_initial", + "docstring": "Returns a dictionary which will be passed to the form for `step`\nas `initial`. If no initial data was provied while initializing the\nform wizard, a empty dictionary will be returned.", + "code": "def get_form_initial(self, step):\n \"\"\"\n Returns a dictionary which will be passed to the form for `step`\n as `initial`. If no initial data was provied while initializing the\n form wizard, a empty dictionary will be returned.\n \"\"\"\n return self.initial_dict.get(step, {})\n", + "kwargs": "self, step", + "line_number": 349 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 73, - "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "name": "get_allow_empty", - "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_instance", + "docstring": "Returns a object which will be passed to the form for `step`\nas `instance`. If no instance object was provied while initializing\nthe form wizard, None will be returned.", + "code": "def get_form_instance(self, step):\n \"\"\"\n Returns a object which will be passed to the form for `step`\n as `instance`. If no instance object was provied while initializing\n the form wizard, None will be returned.\n \"\"\"\n return self.instance_dict.get(step, None)\n", + "kwargs": "self, step", + "line_number": 357 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 272, - "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", - "name": "get_allow_future", - "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form\n(or formset) on the given step.", + "code": "def get_form_kwargs(self, step=None):\n \"\"\"\n Returns the keyword arguments for instantiating the form\n (or formset) on the given step.\n \"\"\"\n return {}\n", + "kwargs": "self, step=None", + "line_number": 365 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 460, - "code": "def get_cleaned_data_for_step(self, step):\n \"\"\"\n Returns the cleaned data for a given `step`. Before returning the\n cleaned data, the stored values are revalidated through the form.\n If the data doesn't validate, None will be returned.\n \"\"\"\n if step in self.form_list:\n form_obj = self.get_form(step=step,\n data=self.storage.get_step_data(step),\n files=self.storage.get_step_files(step))\n if form_obj.is_valid():\n return form_obj.cleaned_data\n return None\n", - "name": "get_cleaned_data_for_step", - "docstring": "Returns the cleaned data for a given `step`. Before returning the\ncleaned data, the stored values are revalidated through the form.\nIf the data doesn't validate, None will be returned.", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_list", + "docstring": "This method returns a form_list based on the initial form list but\nchecks if there is a condition method/value in the condition_list.\nIf an entry exists in the condition list, it will call/read the value\nand respect the result. (True means add the form, False means ignore\nthe form)\n\nThe form_list is always generated on the fly because condition methods\ncould use data from other (maybe previous forms).", + "code": "def get_form_list(self):\n \"\"\"\n This method returns a form_list based on the initial form list but\n checks if there is a condition method/value in the condition_list.\n If an entry exists in the condition list, it will call/read the value\n and respect the result. (True means add the form, False means ignore\n the form)\n The form_list is always generated on the fly because condition methods\n could use data from other (maybe previous forms).\n \"\"\"\n form_list = SortedDict()\n for form_key, form_class in six.iteritems(self.form_list):\n # try to fetch the value from condition list, by default, the form\n # gets passed to the new list.\n condition = self.condition_dict.get(form_key, True)\n if callable(condition):\n # call the value if needed, passes the current instance.\n condition = condition(self)\n if condition:\n form_list[form_key] = form_class\n return form_list\n", + "kwargs": "self", + "line_number": 189 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 21, - "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", - "name": "get_context_data", - "docstring": "", "klass": [ - "ContextMixin", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_prefix", + "docstring": "Returns the prefix which will be used when calling the actual form for\nthe given step. `step` contains the step-name, `form` the form which\nwill be called with the returned prefix.\n\nIf no step is given, the form_prefix will determine the current step\nautomatically.", + "code": "def get_form_prefix(self, step=None, form=None):\n \"\"\"\n Returns the prefix which will be used when calling the actual form for\n the given step. `step` contains the step-name, `form` the form which\n will be called with the returned prefix.\n If no step is given, the form_prefix will determine the current step\n automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n return str(step)\n", + "kwargs": "self, step=None, form=None", + "line_number": 336 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 130, - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n If an object has been supplied, inject it into the context with the\n supplied context_object_name name.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(ModelFormMixin, self).get_context_data(**context)\n", - "name": "get_context_data", - "docstring": "If an object has been supplied, inject it into the context with the\nsupplied context_object_name name.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_step_data", + "docstring": "Is used to return the raw form data. You may use this method to\nmanipulate the data.", + "code": "def get_form_step_data(self, form):\n \"\"\"\n Is used to return the raw form data. You may use this method to\n manipulate the data.\n \"\"\"\n return form.data\n", + "kwargs": "self, form", + "line_number": 424 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 511, - "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n Returns the template context for a step. You can overwrite this method\n to add more data for all or some steps. This method returns a\n dictionary containing the rendered form step. Available template\n context variables are:\n * all extra data stored in the storage backend\n * `form` - form instance of the current step\n * `wizard` - the wizard instance itself\n Example:\n .. code-block:: python\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context\n \"\"\"\n context = super(WizardView, self).get_context_data(form=form, **kwargs)\n context.update(self.storage.extra_data)\n context['wizard'] = {\n 'form': form,\n 'steps': self.steps,\n 'management_form': ManagementForm(prefix=self.prefix, initial={\n 'current_step': self.steps.current,\n }),\n }\n return context\n", - "name": "get_context_data", - "docstring": "Returns the template context for a step. You can overwrite this method\nto add more data for all or some steps. This method returns a\ndictionary containing the rendered form step. Available template\ncontext variables are:\n\n * all extra data stored in the storage backend\n * `form` - form instance of the current step\n * `wizard` - the wizard instance itself\n\nExample:\n\n.. code-block:: python\n\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_step_files", + "docstring": "Is used to return the raw form files. You may use this method to\nmanipulate the data.", + "code": "def get_form_step_files(self, form):\n \"\"\"\n Is used to return the raw form files. You may use this method to\n manipulate the data.\n \"\"\"\n return form.files\n", + "kwargs": "self, form", + "line_number": 431 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 91, - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list')\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", - "name": "get_context_data", - "docstring": "Get the context for this view.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_initkwargs", + "docstring": "Creates a dict with all needed parameters for the form wizard instances.\n\n* `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n* `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n* `instance_dict` - contains a dictionary whose values are model\n instances if the step is based on a ``ModelForm`` and querysets if\n the step is based on a ``ModelFormSet``. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n* `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.", + "code": "@classmethod\ndef get_initkwargs(cls, form_list, initial_dict=None,\n instance_dict=None, condition_dict=None, *args, **kwargs):\n \"\"\"\n Creates a dict with all needed parameters for the form wizard instances.\n * `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n * `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n * `instance_dict` - contains a dictionary whose values are model\n instances if the step is based on a ``ModelForm`` and querysets if\n the step is based on a ``ModelFormSet``. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n * `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.\n \"\"\"\n kwargs.update({\n 'initial_dict': initial_dict or {},\n 'instance_dict': instance_dict or {},\n 'condition_dict': condition_dict or {},\n })\n init_form_list = SortedDict()\n assert len(form_list) > 0, 'at least one form is needed'\n # walk through the passed form list\n for i, form in enumerate(form_list):\n if isinstance(form, (list, tuple)):\n # if the element is a tuple, add the tuple to the new created\n # sorted dictionary.\n init_form_list[six.text_type(form[0])] = form[1]\n else:\n # if not, add the form with a zero based counter as unicode\n init_form_list[six.text_type(i)] = form\n # walk through the new created list of forms\n for form in six.itervalues(init_form_list):\n if issubclass(form, formsets.BaseFormSet):\n # if the element is based on BaseFormSet (FormSet/ModelFormSet)\n # we need to override the form variable.\n form = form.form\n # check if any form contains a FileField, if yes, we need a\n # file_storage added to the wizardview (by subclassing).\n for field in six.itervalues(form.base_fields):\n if (isinstance(field, forms.FileField) and\n not hasattr(cls, 'file_storage')):\n raise NoFileStorageConfigured(\n \"You need to define 'file_storage' in your \"\n \"wizard view in order to handle file uploads.\")\n # build the kwargs for the wizardview instances\n kwargs['form_list'] = init_form_list\n return kwargs\n", + "kwargs": "cls, form_list, initial_dict=None, instance_dict=None, condition_dict=None, *args, **kwargs", + "line_number": 122 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 91, - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", - "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_step", + "docstring": "Returns the next step after the given `step`. If no more steps are\navailable, None will be returned. If the `step` argument is None, the\ncurrent step will be determined automatically.", + "code": "def get_next_step(self, step=None):\n \"\"\"\n Returns the next step after the given `step`. If no more steps are\n available, None will be returned. If the `step` argument is None, the\n current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n key = form_list.keyOrder.index(step) + 1\n if len(form_list.keyOrder) > key:\n return form_list.keyOrder[key]\n return None\n", + "kwargs": "self, step=None", + "line_number": 474 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 659, - "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n NamedUrlWizardView provides the url_name of this wizard in the context\n dict `wizard`.\n \"\"\"\n context = super(NamedUrlWizardView, self).get_context_data(form=form, **kwargs)\n context['wizard']['url_name'] = self.url_name\n return context\n", - "name": "get_context_data", - "docstring": "NamedUrlWizardView provides the url_name of this wizard in the context\ndict `wizard`.", "klass": [ - "NamedUrlWizardView", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_prefix", + "docstring": "", + "code": "def get_prefix(self, *args, **kwargs):\n # TODO: Add some kind of unique id to prefix\n return normalize_name(self.__class__.__name__)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 185 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 80, - "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.object_name.lower()\n else:\n return None\n", - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, object_list" - }, - "model": "cbv.method", - "pk": null + "name": "get_prev_step", + "docstring": "Returns the previous step before the given `step`. If there are no\nsteps available, None will be returned. If the `step` argument is\nNone, the current step will be determined automatically.", + "code": "def get_prev_step(self, step=None):\n \"\"\"\n Returns the previous step before the given `step`. If there are no\n steps available, None will be returned. If the `step` argument is\n None, the current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n key = form_list.keyOrder.index(step) - 1\n if key >= 0:\n return form_list.keyOrder[key]\n return None\n", + "kwargs": "self, step=None", + "line_number": 488 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 80, - "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.object_name.lower()\n else:\n return None\n", - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, obj" - }, - "model": "cbv.method", - "pk": null + "name": "get_step_index", + "docstring": "Returns the index for the given `step` name. If no step is given,\nthe current step will be used to get the index.", + "code": "def get_step_index(self, step=None):\n \"\"\"\n Returns the index for the given `step` name. If no step is given,\n the current step will be used to get the index.\n \"\"\"\n if step is None:\n step = self.steps.current\n return self.get_form_list().keyOrder.index(step)\n", + "kwargs": "self, step=None", + "line_number": 502 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 180, - "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", "klass": [ - "DayMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "This method handles POST requests.\n\nThe wizard will render either the current step (if form validation\nwasn't successful), the next step (if the current step was stored\nsuccessful) or the done view (if no more steps are available)", + "code": "def post(self, *args, **kwargs):\n \"\"\"\n This method handles POST requests.\n The wizard will render either the current step (if form validation\n wasn't successful), the next step (if the current step was stored\n successful) or the done view (if no more steps are available)\n \"\"\"\n # Look for a wizard_goto_step element in the posted data which\n # contains a valid step name. If one was found, render the requested\n # form. (This makes stepping back a lot easier).\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n self.storage.current_step = wizard_goto_step\n form = self.get_form(\n data=self.storage.get_step_data(self.steps.current),\n files=self.storage.get_step_files(self.steps.current))\n return self.render(form)\n # Check if form was refreshed\n management_form = ManagementForm(self.request.POST, prefix=self.prefix)\n if not management_form.is_valid():\n raise ValidationError(\n 'ManagementForm data is missing or has been tampered.')\n form_current_step = management_form.cleaned_data['current_step']\n if (form_current_step != self.steps.current and\n self.storage.current_step is not None):\n # form refreshed, change current step\n self.storage.current_step = form_current_step\n # get the form for the current step\n form = self.get_form(data=self.request.POST, files=self.request.FILES)\n # and try to validate\n if form.is_valid():\n # if the form is valid, store the cleaned data and files.\n self.storage.set_step_data(self.steps.current, self.process_step(form))\n self.storage.set_step_files(self.steps.current, self.process_step_files(form))\n # check if the current step is the last step\n if self.steps.current == self.steps.last:\n # no more steps, render done view\n return self.render_done(form, **kwargs)\n else:\n # proceed to the next step\n return self.render_next_step(form)\n return self.render(form)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 247 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 124, - "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", "klass": [ - "MonthMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "process_step", + "docstring": "This method is used to postprocess the form data. By default, it\nreturns the raw `form.data` dictionary.", + "code": "def process_step(self, form):\n \"\"\"\n This method is used to postprocess the form data. By default, it\n returns the raw `form.data` dictionary.\n \"\"\"\n return self.get_form_step_data(form)\n", + "kwargs": "self, form", + "line_number": 401 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 236, - "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "process_step_files", + "docstring": "This method is used to postprocess the form files. By default, it\nreturns the raw `form.files` dictionary.", + "code": "def process_step_files(self, form):\n \"\"\"\n This method is used to postprocess the form files. By default, it\n returns the raw `form.files` dictionary.\n \"\"\"\n return self.get_form_step_files(form)\n", + "kwargs": "self, form", + "line_number": 408 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 65, - "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", "klass": [ - "YearMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "render", + "docstring": "Returns a ``HttpResponse`` containing all needed context data.", + "code": "def render(self, form=None, **kwargs):\n \"\"\"\n Returns a ``HttpResponse`` containing all needed context data.\n \"\"\"\n form = form or self.get_form()\n context = self.get_context_data(form=form, **kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, form=None, **kwargs", + "line_number": 544 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 583, - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "render_done", + "docstring": "This method gets called when all forms passed. The method should also\nre-validate all steps to prevent manipulation. If any form don't\nvalidate, `render_revalidation_failure` should get called.\nIf everything is fine call `done`.", + "code": "def render_done(self, form, **kwargs):\n \"\"\"\n This method gets called when all forms passed. The method should also\n re-validate all steps to prevent manipulation. If any form don't\n validate, `render_revalidation_failure` should get called.\n If everything is fine call `done`.\n \"\"\"\n final_form_list = []\n # walk through the form list and try to validate the data again.\n for form_key in self.get_form_list():\n form_obj = self.get_form(step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key))\n if not form_obj.is_valid():\n return self.render_revalidation_failure(form_key, form_obj, **kwargs)\n final_form_list.append(form_obj)\n # render the done view and reset the wizard before returning the\n # response. This is needed to prevent from rendering done with the\n # same data twice.\n done_response = self.done(final_form_list, **kwargs)\n self.storage.reset()\n return done_response\n", + "kwargs": "self, form, **kwargs", + "line_number": 312 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 434, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(ordering='-%s' % date_field, **lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_next_step", + "docstring": "This method gets called when the next step/form should be rendered.\n`form` contains the last/current form.", + "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n This method gets called when the next step/form should be rendered.\n `form` contains the last/current form.\n \"\"\"\n # get the form instance based on the data from the storage backend\n # (if available).\n next_step = self.steps.next\n new_form = self.get_form(next_step,\n data=self.storage.get_step_data(next_step),\n files=self.storage.get_step_files(next_step))\n # change the stored current step\n self.storage.current_step = next_step\n return self.render(new_form, **kwargs)\n", + "kwargs": "self, form, **kwargs", + "line_number": 296 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 407, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset(ordering='-%s' % self.get_date_field())\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_revalidation_failure", + "docstring": "Gets called when a form doesn't validate when rendering the done\nview. By default, it changes the current step to failing forms step\nand renders the form.", + "code": "def render_revalidation_failure(self, step, form, **kwargs):\n \"\"\"\n Gets called when a form doesn't validate when rendering the done\n view. By default, it changes the current step to failing forms step\n and renders the form.\n \"\"\"\n self.storage.current_step = step\n return self.render(form, **kwargs)\n", + "kwargs": "self, step, form, **kwargs", + "line_number": 415 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 339, - "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", - "name": "get_dated_items", - "docstring": "Obtain the list of dates and items.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "__repr__", + "docstring": "", + "code": "def __repr__(self):\n return '<%s: forms: %s>' % (self.__class__.__name__, self.form_list)\n", + "kwargs": "self", + "line_number": 109 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 612, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", + "kwargs": "self, **kwargs", + "line_number": 21 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 525, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "delete", + "docstring": "", + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 204 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 569, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(**kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s', self.request.path,\n extra={\n 'status_code': 410,\n 'request': self.request\n })\n return http.HttpResponseGone()\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 180 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 485, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", + "code": "def get_redirect_url(self, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n else:\n return None\n", + "kwargs": "self, **kwargs", + "line_number": 165 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 345, - "code": "def get_dated_queryset(self, ordering=None, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if ordering is not None:\n qs = qs.order_by(ordering)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self, ordering=None, **lookup" - }, - "model": "cbv.method", - "pk": null + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 195 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 264, - "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "options", + "docstring": "", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 201 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 380, - "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates()`, checking along the way\n for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates()`, checking along the way\nfor empty lists that aren't allowed.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self, queryset, date_type=None, ordering=u'ASC'" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 198 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 374, - "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", - "name": "get_date_list_period", - "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 207 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 145, - "code": "def get_day(self):\n \"\"\"\n Return the day for which this view should display data.\n \"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", - "name": "get_day", - "docstring": "Return the day for which this view should display data.", "klass": [ - "DayMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "kwargs": "self", + "line_number": 134 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 138, - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", "klass": [ - "DayMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_to_response", + "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request = self.request,\n template = self.get_template_names(),\n context = context,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 118 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 372, - "code": "def get_form(self, step=None, data=None, files=None):\n \"\"\"\n Constructs the form for a given `step`. If no `step` is defined, the\n current step will be determined automatically.\n The form will be initialized using the `data` argument to prefill the\n new form. If needed, instance or queryset (for `ModelForm` or\n `ModelFormSet`) will be added too.\n \"\"\"\n if step is None:\n step = self.steps.current\n # prepare the kwargs for the form instance.\n kwargs = self.get_form_kwargs(step)\n kwargs.update({\n 'data': data,\n 'files': files,\n 'prefix': self.get_form_prefix(step, self.form_list[step]),\n 'initial': self.get_form_initial(step),\n })\n if issubclass(self.form_list[step], forms.ModelForm):\n # If the form is based on ModelForm, add instance if available\n # and not previously set.\n kwargs.setdefault('instance', self.get_form_instance(step))\n elif issubclass(self.form_list[step], forms.models.BaseModelFormSet):\n # If the form is based on ModelFormSet, add queryset if available\n # and not previous set.\n kwargs.setdefault('queryset', self.get_form_instance(step))\n return self.form_list[step](**kwargs)\n", - "name": "get_form", - "docstring": "Constructs the form for a given `step`. If no `step` is defined, the\ncurrent step will be determined automatically.\n\nThe form will be initialized using the `data` argument to prefill the\nnew form. If needed, instance or queryset (for `ModelForm` or\n`ModelFormSet`) will be added too.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "TemplateView", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self, step=None, data=None, files=None" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 152 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 31, - "code": "def get_form(self, form_class):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n return form_class(**self.get_form_kwargs())\n", - "name": "get_form", - "docstring": "Returns an instance of the form to be used in this view.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self, form_class" - }, - "model": "cbv.method", - "pk": null + "name": "_allowed_methods", + "docstring": "", + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "kwargs": "self", + "line_number": 106 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 80, - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n return model_forms.modelform_factory(model)\n", - "name": "get_form_class", - "docstring": "Returns the form class to use in this view.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n # sanitize keyword arguments\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 45 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 25, - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", - "name": "get_form_class", - "docstring": "Returns the form class to use in this view", "klass": [ - "FormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 78 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 349, - "code": "def get_form_initial(self, step):\n \"\"\"\n Returns a dictionary which will be passed to the form for `step`\n as `initial`. If no initial data was provied while initializing the\n form wizard, a empty dictionary will be returned.\n \"\"\"\n return self.initial_dict.get(step, {})\n", - "name": "get_form_initial", - "docstring": "Returns a dictionary which will be passed to the form for `step`\nas `initial`. If no initial data was provied while initializing the\nform wizard, a empty dictionary will be returned.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "View", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning('Method Not Allowed (%s): %s', request.method, request.path,\n extra={\n 'status_code': 405,\n 'request': self.request\n }\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 88 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 357, - "code": "def get_form_instance(self, step):\n \"\"\"\n Returns a object which will be passed to the form for `step`\n as `instance`. If no instance object was provied while initializing\n the form wizard, None will be returned.\n \"\"\"\n return self.instance_dict.get(step, None)\n", - "name": "get_form_instance", - "docstring": "Returns a object which will be passed to the form for `step`\nas `instance`. If no instance object was provied while initializing\nthe form wizard, None will be returned.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "View", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", + "kwargs": "self, **kwargs", + "line_number": 35 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 100, - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n kwargs.update({'instance': self.object})\n return kwargs\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "options", + "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 97 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 365, - "code": "def get_form_kwargs(self, step=None):\n \"\"\"\n Returns the keyword arguments for instantiating the form\n (or formset) on the given step.\n \"\"\"\n return {}\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form\n(or formset) on the given step.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset(ordering='-%s' % self.get_date_field())\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", + "kwargs": "self", + "line_number": 407 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 37, - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {'initial': self.get_initial()}\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = queryset or self.get_queryset()\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 631 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 189, - "code": "def get_form_list(self):\n \"\"\"\n This method returns a form_list based on the initial form list but\n checks if there is a condition method/value in the condition_list.\n If an entry exists in the condition list, it will call/read the value\n and respect the result. (True means add the form, False means ignore\n the form)\n The form_list is always generated on the fly because condition methods\n could use data from other (maybe previous forms).\n \"\"\"\n form_list = SortedDict()\n for form_key, form_class in six.iteritems(self.form_list):\n # try to fetch the value from condition list, by default, the form\n # gets passed to the new list.\n condition = self.condition_dict.get(form_key, True)\n if callable(condition):\n # call the value if needed, passes the current instance.\n condition = condition(self)\n if condition:\n form_list[form_key] = form_class\n return form_list\n", - "name": "get_form_list", - "docstring": "This method returns a form_list based on the initial form list but\nchecks if there is a condition method/value in the condition_list.\nIf an entry exists in the condition list, it will call/read the value\nand respect the result. (True means add the form, False means ignore\nthe form)\n\nThe form_list is always generated on the fly because condition methods\ncould use data from other (maybe previous forms).", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 332 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 336, - "code": "def get_form_prefix(self, step=None, form=None):\n \"\"\"\n Returns the prefix which will be used when calling the actual form for\n the given step. `step` contains the step-name, `form` the form which\n will be called with the returned prefix.\n If no step is given, the form_prefix will determine the current step\n automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n return str(step)\n", - "name": "get_form_prefix", - "docstring": "Returns the prefix which will be used when calling the actual form for\nthe given step. `step` contains the step-name, `form` the form which\nwill be called with the returned prefix.\n\nIf no step is given, the form_prefix will determine the current step\nautomatically.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, step=None, form=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Obtain the list of dates and items.", + "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", + "kwargs": "self", + "line_number": 339 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 424, - "code": "def get_form_step_data(self, form):\n \"\"\"\n Is used to return the raw form data. You may use this method to\n manipulate the data.\n \"\"\"\n return form.data\n", - "name": "get_form_step_data", - "docstring": "Is used to return the raw form data. You may use this method to\nmanipulate the data.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, ordering=None, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if ordering is not None:\n qs = qs.order_by(ordering)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", + "kwargs": "self, ordering=None, **lookup", + "line_number": 345 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 431, - "code": "def get_form_step_files(self, form):\n \"\"\"\n Is used to return the raw form files. You may use this method to\n manipulate the data.\n \"\"\"\n return form.files\n", - "name": "get_form_step_files", - "docstring": "Is used to return the raw form files. You may use this method to\nmanipulate the data.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates()`, checking along the way\nfor empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates()`, checking along the way\n for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", + "kwargs": "self, queryset, date_type=None, ordering=u'ASC'", + "line_number": 380 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 19, - "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", - "name": "get_initial", - "docstring": "Returns the initial data to use for forms on this view.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self" - }, + "name": "get_date_list_period", + "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", + "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", + "kwargs": "self", + "line_number": 374 + } +}, +{ "model": "cbv.method", - "pk": null + "pk": null, + "fields": { + "klass": [ + "BaseDayArchiveView", + "django.views.generic.dates", + "Django", + "1.5" + ], + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 583 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 122, - "code": "@classmethod\ndef get_initkwargs(cls, form_list, initial_dict=None,\n instance_dict=None, condition_dict=None, *args, **kwargs):\n \"\"\"\n Creates a dict with all needed parameters for the form wizard instances.\n * `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n * `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n * `instance_dict` - contains a dictionary whose values are model\n instances if the step is based on a ``ModelForm`` and querysets if\n the step is based on a ``ModelFormSet``. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n * `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.\n \"\"\"\n kwargs.update({\n 'initial_dict': initial_dict or {},\n 'instance_dict': instance_dict or {},\n 'condition_dict': condition_dict or {},\n })\n init_form_list = SortedDict()\n assert len(form_list) > 0, 'at least one form is needed'\n # walk through the passed form list\n for i, form in enumerate(form_list):\n if isinstance(form, (list, tuple)):\n # if the element is a tuple, add the tuple to the new created\n # sorted dictionary.\n init_form_list[six.text_type(form[0])] = form[1]\n else:\n # if not, add the form with a zero based counter as unicode\n init_form_list[six.text_type(i)] = form\n # walk through the new created list of forms\n for form in six.itervalues(init_form_list):\n if issubclass(form, formsets.BaseFormSet):\n # if the element is based on BaseFormSet (FormSet/ModelFormSet)\n # we need to override the form variable.\n form = form.form\n # check if any form contains a FileField, if yes, we need a\n # file_storage added to the wizardview (by subclassing).\n for field in six.itervalues(form.base_fields):\n if (isinstance(field, forms.FileField) and\n not hasattr(cls, 'file_storage')):\n raise NoFileStorageConfigured(\n \"You need to define 'file_storage' in your \"\n \"wizard view in order to handle file uploads.\")\n # build the kwargs for the wizardview instances\n kwargs['form_list'] = init_form_list\n return kwargs\n", - "name": "get_initkwargs", - "docstring": "Creates a dict with all needed parameters for the form wizard instances.\n\n* `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n* `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n* `instance_dict` - contains a dictionary whose values are model\n instances if the step is based on a ``ModelForm`` and querysets if\n the step is based on a ``ModelFormSet``. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n* `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "cls, form_list, initial_dict=None, instance_dict=None, condition_dict=None, *args, **kwargs" - }, + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", + "kwargs": "self", + "line_number": 569 + } +}, +{ "model": "cbv.method", - "pk": null + "pk": null, + "fields": { + "klass": [ + "BaseMonthArchiveView", + "django.views.generic.dates", + "Django", + "1.5" + ], + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", + "kwargs": "self", + "line_number": 485 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 582, - "code": "@classmethod\ndef get_initkwargs(cls, *args, **kwargs):\n \"\"\"\n We require a url_name to reverse URLs later. Additionally users can\n pass a done_step_name to change the URL name of the \"done\" view.\n \"\"\"\n assert 'url_name' in kwargs, 'URL name is needed to resolve correct wizard URLs'\n extra_kwargs = {\n 'done_step_name': kwargs.pop('done_step_name', 'done'),\n 'url_name': kwargs.pop('url_name'),\n }\n initkwargs = super(NamedUrlWizardView, cls).get_initkwargs(*args, **kwargs)\n initkwargs.update(extra_kwargs)\n assert initkwargs['done_step_name'] not in initkwargs['form_list'], \\\n 'step name \"%s\" is reserved for \"done\" view' % initkwargs['done_step_name']\n return initkwargs\n", - "name": "get_initkwargs", - "docstring": "We require a url_name to reverse URLs later. Additionally users can\npass a done_step_name to change the URL name of the \"done\" view.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "cls, *args, **kwargs" - }, + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", + "kwargs": "self", + "line_number": 612 + } +}, +{ "model": "cbv.method", - "pk": null + "pk": null, + "fields": { + "klass": [ + "BaseWeekArchiveView", + "django.views.generic.dates", + "Django", + "1.5" + ], + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", + "kwargs": "self", + "line_number": 525 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 464, - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", "klass": [ "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(ordering='-%s' % date_field, **lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", + "kwargs": "self", + "line_number": 434 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 86, - "code": "def get_month(self):\n \"\"\"\n Return the month for which this view should display data.\n \"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", - "name": "get_month", - "docstring": "Return the month for which this view should display data.", "klass": [ - "MonthMixin", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", + "kwargs": "self", + "line_number": 464 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 79, - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", "klass": [ - "MonthMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_allow_future", + "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", + "kwargs": "self", + "line_number": 272 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 172, - "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", - "name": "_get_next_day", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", "klass": [ - "DayMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, date" - }, + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", + "kwargs": "self", + "line_number": 264 + } +}, +{ "model": "cbv.method", - "pk": null + "pk": null, + "fields": { + "klass": [ + "DateMixin", + "django.views.generic.dates", + "Django", + "1.5" + ], + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", + "kwargs": "self, value", + "line_number": 292 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 160, - "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", - "name": "get_next_day", - "docstring": "Get the next valid day.", "klass": [ - "DayMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", + "kwargs": "self, date", + "line_number": 305 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 113, - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n return date.replace(year=date.year + 1, month=1, day=1)\n else:\n return date.replace(month=date.month + 1, day=1)\n", - "name": "_get_next_month", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", + "kwargs": "self, date", + "line_number": 180 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 101, - "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", - "name": "get_next_month", - "docstring": "Get the next valid month.", "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_day", + "docstring": "Return the day for which this view should display data.", + "code": "def get_day(self):\n \"\"\"\n Return the day for which this view should display data.\n \"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "kwargs": "self", + "line_number": 145 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 474, - "code": "def get_next_step(self, step=None):\n \"\"\"\n Returns the next step after the given `step`. If no more steps are\n available, None will be returned. If the `step` argument is None, the\n current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n key = form_list.keyOrder.index(step) + 1\n if len(form_list.keyOrder) > key:\n return form_list.keyOrder[key]\n return None\n", - "name": "get_next_step", - "docstring": "Returns the next step after the given `step`. If no more steps are\navailable, None will be returned. If the `step` argument is None, the\ncurrent step will be determined automatically.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "DayMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", + "kwargs": "self", + "line_number": 138 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 228, - "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n", - "name": "_get_next_week", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", "klass": [ - "WeekMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_get_next_day", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", + "kwargs": "self, date", + "line_number": 172 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 216, - "code": "def get_next_week(self, date):\n \"\"\"\n Get the next valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", - "name": "get_next_week", - "docstring": "Get the next valid week.", "klass": [ - "WeekMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "kwargs": "self, date", + "line_number": 160 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 57, - "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date.replace(year=date.year + 1, month=1, day=1)\n", - "name": "_get_next_year", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", "klass": [ - "YearMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "kwargs": "self, date", + "line_number": 166 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 45, - "code": "def get_next_year(self, date):\n \"\"\"\n Get the next valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", - "name": "get_next_year", - "docstring": "Get the next valid year.", "klass": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", + "kwargs": "self, date", + "line_number": 124 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 21, - "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg, None)\n slug = self.kwargs.get(self.slug_url_kwarg, None)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n elif slug is not None:\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n else:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except ObjectDoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "name": "get_object", - "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, queryset=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_month", + "docstring": "Return the month for which this view should display data.", + "code": "def get_month(self):\n \"\"\"\n Return the month for which this view should display data.\n \"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "kwargs": "self", + "line_number": 86 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 631, - "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = queryset or self.get_queryset()\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", - "name": "get_object", - "docstring": "Get the object this request displays.", "klass": [ - "BaseDateDetailView", + "MonthMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, queryset=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "kwargs": "self", + "line_number": 79 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 61, - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, queryset" - }, - "model": "cbv.method", - "pk": null + "name": "_get_next_month", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n return date.replace(year=date.year + 1, month=1, day=1)\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "kwargs": "self, date", + "line_number": 113 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 67, - "code": "def get_paginator(self, queryset, per_page, orphans=0, allow_empty_first_page=True):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(queryset, per_page, orphans=orphans, allow_empty_first_page=allow_empty_first_page)\n", - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "kwargs": "self, date", + "line_number": 101 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 185, - "code": "def get_prefix(self, *args, **kwargs):\n # TODO: Add some kind of unique id to prefix\n return normalize_name(self.__class__.__name__)\n", - "name": "get_prefix", - "docstring": "", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MonthMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "kwargs": "self, date", + "line_number": 107 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 166, - "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", - "name": "get_previous_day", - "docstring": "Get the previous valid day.", "klass": [ - "DayMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", + "kwargs": "self, date", + "line_number": 236 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 107, - "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", - "name": "get_previous_month", - "docstring": "Get the previous valid month.", "klass": [ - "MonthMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_get_next_week", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n", + "kwargs": "self, date", + "line_number": 228 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 222, - "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", - "name": "get_previous_week", - "docstring": "Get the previous valid week.", "klass": [ "WeekMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_week", + "docstring": "Get the next valid week.", + "code": "def get_next_week(self, date):\n \"\"\"\n Get the next valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "kwargs": "self, date", + "line_number": 216 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 51, - "code": "def get_previous_year(self, date):\n \"\"\"\n Get the previous valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", - "name": "get_previous_year", - "docstring": "Get the previous valid year.", "klass": [ - "YearMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "kwargs": "self, date", + "line_number": 222 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 488, - "code": "def get_prev_step(self, step=None):\n \"\"\"\n Returns the previous step before the given `step`. If there are no\n steps available, None will be returned. If the `step` argument is\n None, the current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n key = form_list.keyOrder.index(step) - 1\n if key >= 0:\n return form_list.keyOrder[key]\n return None\n", - "name": "get_prev_step", - "docstring": "Returns the previous step before the given `step`. If there are no\nsteps available, None will be returned. If the `step` argument is\nNone, the current step will be determined automatically.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_week", + "docstring": "Return the week for which this view should display data", + "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", + "kwargs": "self", + "line_number": 201 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 22, - "code": "def get_queryset(self):\n \"\"\"\n Get the list of items for this view. This must be an iterable, and may\n be a queryset (in which qs-specific behavior will be enabled).\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if hasattr(queryset, '_clone'):\n queryset = queryset._clone()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\"'%s' must define 'queryset' or 'model'\"\n % self.__class__.__name__)\n return queryset\n", - "name": "get_queryset", - "docstring": "Get the list of items for this view. This must be an iterable, and may\nbe a queryset (in which qs-specific behavior will be enabled).", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", + "kwargs": "self, date", + "line_number": 242 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 58, - "code": "def get_queryset(self):\n \"\"\"\n Get the queryset to look an object up against. May not be called if\n `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\"%(cls)s is missing a queryset. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n })\n return self.queryset._clone()\n", - "name": "get_queryset", - "docstring": "Get the queryset to look an object up against. May not be called if\n`get_object` is overridden.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WeekMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "kwargs": "self", + "line_number": 194 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 165, - "code": "def get_redirect_url(self, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n else:\n return None\n", - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", "klass": [ - "RedirectView", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", + "kwargs": "self, date", + "line_number": 65 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 74, - "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "_get_next_year", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date.replace(year=date.year + 1, month=1, day=1)\n", + "kwargs": "self, date", + "line_number": 57 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 502, - "code": "def get_step_index(self, step=None):\n \"\"\"\n Returns the index for the given `step` name. If no step is given,\n the current step will be used to get the index.\n \"\"\"\n if step is None:\n step = self.steps.current\n return self.get_form_list().keyOrder.index(step)\n", - "name": "get_step_index", - "docstring": "Returns the index for the given `step` name. If no step is given,\nthe current step will be used to get the index.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_year", + "docstring": "Get the next valid year.", + "code": "def get_next_year(self, date):\n \"\"\"\n Get the next valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", + "kwargs": "self, date", + "line_number": 45 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 600, - "code": "def get_step_url(self, step):\n return reverse(self.url_name, kwargs={'step': step})\n", - "name": "get_step_url", - "docstring": "", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_year", + "docstring": "Get the previous valid year.", + "code": "def get_previous_year(self, date):\n \"\"\"\n Get the previous valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", + "kwargs": "self, date", + "line_number": 51 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 252, - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", - "name": "get_success_url", - "docstring": "", "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "kwargs": "self", + "line_number": 30 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 108, - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n url = self.success_url % self.object.__dict__\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", - "name": "get_success_url", - "docstring": "Returns the supplied URL.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", + "kwargs": "self", + "line_number": 23 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 49, - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", - "name": "get_success_url", - "docstring": "Returns the supplied success URL.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 107 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 134, - "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "name": "get_template_names", - "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 91 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 149, - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.object_name.lower(), self.template_name_suffix))\n return names\n", - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.object_name.lower()\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 80 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 117, - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html`` \n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.object._meta.app_label,\n self.object._meta.object_name.lower(),\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.object_name.lower(),\n self.template_name_suffix\n ))\n return names\n", - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html`` ", "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_object", + "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg, None)\n slug = self.kwargs.get(self.slug_url_kwarg, None)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n elif slug is not None:\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n else:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except ObjectDoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 21 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 201, - "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", - "name": "get_week", - "docstring": "Return the week for which this view should display data", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_queryset", + "docstring": "Get the queryset to look an object up against. May not be called if\n`get_object` is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Get the queryset to look an object up against. May not be called if\n `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\"%(cls)s is missing a queryset. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n })\n return self.queryset._clone()\n", + "kwargs": "self", + "line_number": 58 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 242, - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", + "kwargs": "self", + "line_number": 74 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 194, - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html`` ", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html`` \n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.object._meta.app_label,\n self.object._meta.object_name.lower(),\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.object_name.lower(),\n self.template_name_suffix\n ))\n return names\n", + "kwargs": "self", + "line_number": 117 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 30, - "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", - "name": "get_year", - "docstring": "Return the year for which this view should display data.", "klass": [ - "YearMixin", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 193 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 23, - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", "klass": [ - "YearMixin", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 197 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 195, - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "head", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 216 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 88, - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning('Method Not Allowed (%s): %s', request.method, request.path,\n extra={\n 'status_code': 405,\n 'request': self.request\n }\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", - "name": "http_method_not_allowed", - "docstring": "", "klass": [ - "View", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 220 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 32, - "code": "def __init__(self, wizard):\n self._wizard = wizard\n", - "name": "__init__", - "docstring": "", "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, wizard" - }, - "model": "cbv.method", - "pk": null + "name": "delete", + "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n self.object.delete()\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 239 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 35, - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", "klass": [ - "View", - "django.views.generic.base", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", + "kwargs": "self", + "line_number": 252 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 38, - "code": "def __len__(self):\n return self.count\n", - "name": "__len__", - "docstring": "", "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, *args, **kwargs):\n return self.delete(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 249 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 292, - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, value" - }, - "model": "cbv.method", - "pk": null + "name": "form_invalid", + "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", + "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 67 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 305, - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 61 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 201, - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "options", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form", + "docstring": "Returns an instance of the form to be used in this view.", + "code": "def get_form(self, form_class):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class", + "line_number": 31 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 97, - "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", - "name": "options", - "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", "klass": [ - "View", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_class", + "docstring": "Returns the form class to use in this view", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", + "kwargs": "self", + "line_number": 25 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 38, - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(queryset, page_size, allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, queryset, page_size" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {'initial': self.get_initial()}\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "kwargs": "self", + "line_number": 37 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 249, - "code": "def post(self, *args, **kwargs):\n return self.delete(*args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "DeletionMixin", + "FormMixin", "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_initial", + "docstring": "Returns the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", + "kwargs": "self", + "line_number": 19 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 247, - "code": "def post(self, *args, **kwargs):\n \"\"\"\n This method handles POST requests.\n The wizard will render either the current step (if form validation\n wasn't successful), the next step (if the current step was stored\n successful) or the done view (if no more steps are available)\n \"\"\"\n # Look for a wizard_goto_step element in the posted data which\n # contains a valid step name. If one was found, render the requested\n # form. (This makes stepping back a lot easier).\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n self.storage.current_step = wizard_goto_step\n form = self.get_form(\n data=self.storage.get_step_data(self.steps.current),\n files=self.storage.get_step_files(self.steps.current))\n return self.render(form)\n # Check if form was refreshed\n management_form = ManagementForm(self.request.POST, prefix=self.prefix)\n if not management_form.is_valid():\n raise ValidationError(\n 'ManagementForm data is missing or has been tampered.')\n form_current_step = management_form.cleaned_data['current_step']\n if (form_current_step != self.steps.current and\n self.storage.current_step is not None):\n # form refreshed, change current step\n self.storage.current_step = form_current_step\n # get the form for the current step\n form = self.get_form(data=self.request.POST, files=self.request.FILES)\n # and try to validate\n if form.is_valid():\n # if the form is valid, store the cleaned data and files.\n self.storage.set_step_data(self.steps.current, self.process_step(form))\n self.storage.set_step_files(self.steps.current, self.process_step_files(form))\n # check if the current step is the last step\n if self.steps.current == self.steps.last:\n # no more steps, render done view\n return self.render_done(form, **kwargs)\n else:\n # proceed to the next step\n return self.render_next_step(form)\n return self.render(form)\n", - "name": "post", - "docstring": "This method handles POST requests.\n\nThe wizard will render either the current step (if form validation\nwasn't successful), the next step (if the current step was stored\nsuccessful) or the done view (if no more steps are available)", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "FormMixin", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "Returns the supplied success URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", + "kwargs": "self", + "line_number": 49 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 198, - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", + "kwargs": "self, form", + "line_number": 123 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 157, - "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", "klass": [ - "ProcessFormView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "If an object has been supplied, inject it into the context with the\nsupplied context_object_name name.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n If an object has been supplied, inject it into the context with the\n supplied context_object_name name.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(ModelFormMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 130 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 648, - "code": "def post(self, *args, **kwargs):\n \"\"\"\n Do a redirect if user presses the prev. step button. The rest of this\n is super'd from WizardView.\n \"\"\"\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n self.storage.current_step = wizard_goto_step\n return redirect(self.get_step_url(wizard_goto_step))\n return super(NamedUrlWizardView, self).post(*args, **kwargs)\n", - "name": "post", - "docstring": "Do a redirect if user presses the prev. step button. The rest of this\nis super'd from WizardView.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_class", + "docstring": "Returns the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n return model_forms.modelform_factory(model)\n", + "kwargs": "self", + "line_number": 80 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 197, - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "BaseCreateView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 100 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 220, - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "BaseUpdateView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "Returns the supplied URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n url = self.success_url % self.object.__dict__\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 108 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 401, - "code": "def process_step(self, form):\n \"\"\"\n This method is used to postprocess the form data. By default, it\n returns the raw `form.data` dictionary.\n \"\"\"\n return self.get_form_step_data(form)\n", - "name": "process_step", - "docstring": "This method is used to postprocess the form data. By default, it\nreturns the raw `form.data` dictionary.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 149 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 408, - "code": "def process_step_files(self, form):\n \"\"\"\n This method is used to postprocess the form files. By default, it\n returns the raw `form.files` dictionary.\n \"\"\"\n return self.get_form_step_files(form)\n", - "name": "process_step_files", - "docstring": "This method is used to postprocess the form files. By default, it\nreturns the raw `form.files` dictionary.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 157 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 171, - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "name": "put", - "docstring": "", "klass": [ "ProcessFormView", "django.views.generic.edit", "Django", "1.5" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "put", + "docstring": "", + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 171 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 207, - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "put", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseListView", + "django.views.generic.list", "Django", "1.5" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if (self.get_paginate_by(self.object_list) is not None\n and hasattr(self.object_list, 'exists')):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data(object_list=self.object_list)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 123 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 544, - "code": "def render(self, form=None, **kwargs):\n \"\"\"\n Returns a ``HttpResponse`` containing all needed context data.\n \"\"\"\n form = form or self.get_form()\n context = self.get_context_data(form=form, **kwargs)\n return self.render_to_response(context)\n", - "name": "render", - "docstring": "Returns a ``HttpResponse`` containing all needed context data.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], - "kwargs": "self, form=None, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_allow_empty", + "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 73 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 312, - "code": "def render_done(self, form, **kwargs):\n \"\"\"\n This method gets called when all forms passed. The method should also\n re-validate all steps to prevent manipulation. If any form don't\n validate, `render_revalidation_failure` should get called.\n If everything is fine call `done`.\n \"\"\"\n final_form_list = []\n # walk through the form list and try to validate the data again.\n for form_key in self.get_form_list():\n form_obj = self.get_form(step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key))\n if not form_obj.is_valid():\n return self.render_revalidation_failure(form_key, form_obj, **kwargs)\n final_form_list.append(form_obj)\n # render the done view and reset the wizard before returning the\n # response. This is needed to prevent from rendering done with the\n # same data twice.\n done_response = self.done(final_form_list, **kwargs)\n self.storage.reset()\n return done_response\n", - "name": "render_done", - "docstring": "This method gets called when all forms passed. The method should also\nre-validate all steps to prevent manipulation. If any form don't\nvalidate, `render_revalidation_failure` should get called.\nIf everything is fine call `done`.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list')\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 91 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 685, - "code": "def render_done(self, form, **kwargs):\n \"\"\"\n When rendering the done view, we have to redirect first (if the URL\n name doesn't fit).\n \"\"\"\n if kwargs.get('step', None) != self.done_step_name:\n return redirect(self.get_step_url(self.done_step_name))\n return super(NamedUrlWizardView, self).render_done(form, **kwargs)\n", - "name": "render_done", - "docstring": "When rendering the done view, we have to redirect first (if the URL\nname doesn't fit).", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.object_name.lower()\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 80 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 668, - "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n When using the NamedUrlWizardView, we have to redirect to update the\n browser's URL to match the shown step.\n \"\"\"\n next_step = self.get_next_step()\n self.storage.current_step = next_step\n return redirect(self.get_step_url(next_step))\n", - "name": "render_next_step", - "docstring": "When using the NamedUrlWizardView, we have to redirect to update the\nbrowser's URL to match the shown step.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 61 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 296, - "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n This method gets called when the next step/form should be rendered.\n `form` contains the last/current form.\n \"\"\"\n # get the form instance based on the data from the storage backend\n # (if available).\n next_step = self.steps.next\n new_form = self.get_form(next_step,\n data=self.storage.get_step_data(next_step),\n files=self.storage.get_step_files(next_step))\n # change the stored current step\n self.storage.current_step = next_step\n return self.render(new_form, **kwargs)\n", - "name": "render_next_step", - "docstring": "This method gets called when the next step/form should be rendered.\n`form` contains the last/current form.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0, allow_empty_first_page=True):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(queryset, per_page, orphans=orphans, allow_empty_first_page=allow_empty_first_page)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True", + "line_number": 67 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 415, - "code": "def render_revalidation_failure(self, step, form, **kwargs):\n \"\"\"\n Gets called when a form doesn't validate when rendering the done\n view. By default, it changes the current step to failing forms step\n and renders the form.\n \"\"\"\n self.storage.current_step = step\n return self.render(form, **kwargs)\n", - "name": "render_revalidation_failure", - "docstring": "Gets called when a form doesn't validate when rendering the done\nview. By default, it changes the current step to failing forms step\nand renders the form.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], - "kwargs": "self, step, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_queryset", + "docstring": "Get the list of items for this view. This must be an iterable, and may\nbe a queryset (in which qs-specific behavior will be enabled).", + "code": "def get_queryset(self):\n \"\"\"\n Get the list of items for this view. This must be an iterable, and may\n be a queryset (in which qs-specific behavior will be enabled).\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if hasattr(queryset, '_clone'):\n queryset = queryset._clone()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\"'%s' must define 'queryset' or 'model'\"\n % self.__class__.__name__)\n return queryset\n", + "kwargs": "self", + "line_number": 22 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 677, - "code": "def render_revalidation_failure(self, failed_step, form, **kwargs):\n \"\"\"\n When a step fails, we have to redirect the user to the first failing\n step.\n \"\"\"\n self.storage.current_step = failed_step\n return redirect(self.get_step_url(failed_step))\n", - "name": "render_revalidation_failure", - "docstring": "When a step fails, we have to redirect the user to the first failing\nstep.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], - "kwargs": "self, failed_step, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(queryset, page_size, allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 38 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 118, - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request = self.request,\n template = self.get_template_names(),\n context = context,\n **response_kwargs\n )\n", - "name": "render_to_response", - "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.5" ], - "kwargs": "self, context, **response_kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.object_name.lower(), self.template_name_suffix))\n return names\n", + "kwargs": "self", + "line_number": 149 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "line_number": 109, - "code": "def __repr__(self):\n return '<%s: forms: %s>' % (self.__class__.__name__, self.form_list)\n", - "name": "__repr__", - "docstring": "", - "klass": [ + "parent": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null -}, -{ - "fields": { - "line_number": 41, - "code": "def __repr__(self):\n return '' % (self._wizard, self.all)\n", - "name": "__repr__", - "docstring": "", - "klass": [ - "StepsHelper", + "child": [ + "CookieWizardView", "django.contrib.formtools.wizard.views", "Django", "1.5" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "NamedUrlCookieWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "NamedUrlSessionWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], "child": [ - "FormView", - "django.views.generic.edit", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ContextMixin", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "SessionWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ContextMixin", + "TemplateView", "django.views.generic.base", "Django", "1.5" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ContextMixin", + "View", "django.views.generic.base", "Django", "1.5" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.5" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.5" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.5" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.5" ], "child": [ - "BaseDayArchiveView", + "ArchiveIndexView", "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "BaseDayArchiveView", + "BaseArchiveIndexView", "django.views.generic.dates", "Django", "1.5" ], "child": [ - "BaseTodayArchiveView", + "ArchiveIndexView", "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ "BaseDateListView", "django.views.generic.dates", @@ -4823,603 +4782,584 @@ "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null -}, -{ - "fields": { - "order": 0, - "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", - "Django", - "1.5" ], - "child": [ - "DeleteView", - "django.views.generic.edit", - "Django", - "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "DateDetailView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "DetailView", - "django.views.generic.detail", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DateMixin", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "CreateView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 3 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectMixin", + "BaseDetailView", "django.views.generic.detail", "Django", "1.5" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 4 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "FormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.5" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "FormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "ArchiveIndexView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "YearArchiveView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 3 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "MonthArchiveView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "WeekArchiveView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "DayArchiveView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "TodayArchiveView", + "BaseTodayArchiveView", "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "BaseDateListView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "CookieWizardView", - "django.contrib.formtools.wizard.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "SessionWizardView", - "django.contrib.formtools.wizard.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.5" ], "child": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "DateDetailView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "NamedUrlCookieWizardView", - "django.contrib.formtools.wizard.views", + "DateDetailView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.5" ], "child": [ - "NamedUrlSessionWizardView", - "django.contrib.formtools.wizard.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "View", - "django.views.generic.base", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "RedirectView", - "django.views.generic.base", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.5" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateView", - "django.views.generic.base", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.5" ], "child": [ - "TemplateView", - "django.views.generic.base", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.5" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.5" ], "child": [ - "YearArchiveView", + "WeekArchiveView", "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ "BaseWeekArchiveView", "django.views.generic.dates", @@ -5431,261 +5371,261 @@ "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.5" ], "child": [ - "TodayArchiveView", + "YearArchiveView", "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseMonthArchiveView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.5" ], "child": [ - "MonthArchiveView", + "YearArchiveView", "django.views.generic.dates", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.5" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.5" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.5" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.5" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "DetailView", + "django.views.generic.detail", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseUpdateView", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "1.5" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseFormView", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.5" ], "child": [ - "FormView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ContextMixin", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.5" ], "child": [ - "TemplateView", - "django.views.generic.base", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDeleteView", + "ProcessFormView", "django.views.generic.edit", "Django", "1.5" ], "child": [ - "DeleteView", + "BaseCreateView", "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseCreateView", + "DeletionMixin", "django.views.generic.edit", "Django", "1.5" ], "child": [ - "CreateView", + "BaseDeleteView", "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "SingleObjectMixin", + "BaseDetailView", "django.views.generic.detail", "Django", "1.5" ], "child": [ - "ModelFormMixin", + "BaseDeleteView", "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseListView", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "1.5" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseFormView", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ "ProcessFormView", "django.views.generic.edit", @@ -5693,393 +5633,392 @@ "1.5" ], "child": [ - "BaseCreateView", + "BaseFormView", "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.5" ], "child": [ - "BaseDeleteView", + "BaseUpdateView", "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "View", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.5" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDetailView", + "SingleObjectTemplateResponseMixin", "django.views.generic.detail", "Django", "1.5" ], "child": [ - "DetailView", - "django.views.generic.detail", + "CreateView", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "WeekMixin", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.5" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.5" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.5" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.5" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.5" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "View", - "django.views.generic.base", + "BaseFormView", + "django.views.generic.edit", "Django", "1.5" ], "child": [ - "BaseListView", - "django.views.generic.list", + "FormView", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.5" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "DateMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.5" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.5" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.5" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "View", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.5" ], "child": [ - "TemplateView", - "django.views.generic.base", + "UpdateView", + "django.views.generic.edit", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "DayMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.5" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.5" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 3, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.5" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 3, "parent": [ - "DateMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.5" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 4, "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.5" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.5" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } } ] diff --git a/cbv/fixtures/1.6.json b/cbv/fixtures/1.6.json index 11be1030..3931c799 100644 --- a/cbv/fixtures/1.6.json +++ b/cbv/fixtures/1.6.json @@ -1,4960 +1,4919 @@ [ { + "model": "cbv.projectversion", "fields": { "project": [ "Django" ], "version_number": "1.6", "sortable_version_number": "0106" - }, - "model": "cbv.projectversion", - "pk": null + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.6" ], + "name": "django.contrib.formtools.wizard.views", "docstring": "", - "name": "django.views.generic", - "filename": "/django/views/generic/__init__.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/contrib/formtools/wizard/views.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.6" ], + "name": "django.views.generic", "docstring": "", - "name": "django.views.generic.base", - "filename": "/django/views/generic/base.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/__init__.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.6" ], + "name": "django.views.generic.base", "docstring": "", - "name": "django.views.generic.dates", - "filename": "/django/views/generic/dates.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/base.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.6" ], + "name": "django.views.generic.dates", "docstring": "", - "name": "django.views.generic.detail", - "filename": "/django/views/generic/detail.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/dates.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.6" ], + "name": "django.views.generic.detail", "docstring": "", - "name": "django.views.generic.edit", - "filename": "/django/views/generic/edit.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/detail.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.6" ], + "name": "django.views.generic.edit", "docstring": "", - "name": "django.views.generic.list", - "filename": "/django/views/generic/list.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/edit.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.6" ], + "name": "django.views.generic.list", "docstring": "", - "name": "django.contrib.formtools.wizard.views", - "filename": "/django/contrib/formtools/wizard/views.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/list.py" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 585, - "name": "CookieWizardView", - "docs_url": "", - "docstring": "A WizardView with pre-configured CookieStorage backend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "CookieWizardView", + "docstring": "A WizardView with pre-configured CookieStorage backend.", + "line_number": 585, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 726, - "name": "NamedUrlCookieWizardView", - "docs_url": "", - "docstring": "A NamedUrlFormWizard with pre-configured CookieStorageBackend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "NamedUrlCookieWizardView", + "docstring": "A NamedUrlFormWizard with pre-configured CookieStorageBackend.", + "line_number": 726, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 719, - "name": "NamedUrlSessionWizardView", - "docs_url": "", - "docstring": "A NamedUrlWizardView with pre-configured SessionStorage backend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "NamedUrlSessionWizardView", + "docstring": "A NamedUrlWizardView with pre-configured SessionStorage backend.", + "line_number": 719, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 592, - "name": "NamedUrlWizardView", - "docs_url": "", - "docstring": "A WizardView with URL named steps support.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "NamedUrlWizardView", + "docstring": "A WizardView with URL named steps support.", + "line_number": 592, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 578, - "name": "SessionWizardView", - "docs_url": "", - "docstring": "A WizardView with pre-configured SessionStorage backend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "SessionWizardView", + "docstring": "A WizardView with pre-configured SessionStorage backend.", + "line_number": 578, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 31, - "name": "StepsHelper", - "docs_url": "", - "docstring": "", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "StepsHelper", + "docstring": "", + "line_number": 31, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 97, - "name": "WizardView", - "docs_url": "", - "docstring": "The WizardView is used to create multi-page forms and handles all the\nstorage and validation stuff. The wizard is based on Django's generic\nclass based views.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "WizardView", + "docstring": "The WizardView is used to create multi-page forms and handles all the\nstorage and validation stuff. The wizard is based on Django's generic\nclass based views.", + "line_number": 97, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 10, - "name": "GenericViewError", - "docs_url": "", - "docstring": "A problem in a generic view.", "module": [ "django.views.generic", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "GenericViewError", + "docstring": "A problem in a generic view.", + "line_number": 10, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 16, - "name": "ContextMixin", - "docs_url": "", - "docstring": "A default context mixin that passes the keyword arguments received by\nget_context_data as the template context.", "module": [ "django.views.generic.base", "Django", "1.6" ], - "import_path": "django.views.generic.base" - }, - "model": "cbv.klass", - "pk": null + "name": "ContextMixin", + "docstring": "A default context mixin that passes the keyword arguments received by\nget_context_data as the template context.", + "line_number": 16, + "import_path": "django.views.generic.base", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 158, - "name": "RedirectView", - "docs_url": "", - "docstring": "A view that provides a redirect on any GET request.", "module": [ "django.views.generic.base", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "RedirectView", + "docstring": "A view that provides a redirect on any GET request.", + "line_number": 158, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 111, - "name": "TemplateResponseMixin", - "docs_url": "", - "docstring": "A mixin that can be used to render a template.", "module": [ "django.views.generic.base", "Django", "1.6" ], - "import_path": "django.views.generic.base" - }, - "model": "cbv.klass", - "pk": null + "name": "TemplateResponseMixin", + "docstring": "A mixin that can be used to render a template.", + "line_number": 111, + "import_path": "django.views.generic.base", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 148, - "name": "TemplateView", - "docs_url": "", - "docstring": "A view that renders a template. This view will also pass into the context\nany keyword arguments passed by the url conf.", "module": [ "django.views.generic.base", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "TemplateView", + "docstring": "A view that renders a template. This view will also pass into the context\nany keyword arguments passed by the url conf.", + "line_number": 148, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 28, - "name": "View", - "docs_url": "", - "docstring": "Intentionally simple parent class for all views. Only implements\ndispatch-by-method and simple sanity checking.", "module": [ "django.views.generic.base", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "View", + "docstring": "Intentionally simple parent class for all views. Only implements\ndispatch-by-method and simple sanity checking.", + "line_number": 28, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 423, - "name": "ArchiveIndexView", - "docs_url": "", - "docstring": "Top-level archive of date-based items.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "ArchiveIndexView", + "docstring": "Top-level archive of date-based items.", + "line_number": 423, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 402, - "name": "BaseArchiveIndexView", - "docs_url": "", - "docstring": "Base class for archives of date-based items.\n\nRequires a response mixin.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseArchiveIndexView", + "docstring": "Base class for archives of date-based items.\n\nRequires a response mixin.", + "line_number": 402, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 629, - "name": "BaseDateDetailView", - "docs_url": "", - "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDateDetailView", + "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", + "line_number": 629, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 325, - "name": "BaseDateListView", - "docs_url": "", - "docstring": "Abstract base class for date-based views displaying a list of objects.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDateListView", + "docstring": "Abstract base class for date-based views displaying a list of objects.", + "line_number": 325, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 568, - "name": "BaseDayArchiveView", - "docs_url": "", - "docstring": "List of objects published on a given day.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDayArchiveView", + "docstring": "List of objects published on a given day.", + "line_number": 568, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 482, - "name": "BaseMonthArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given month.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseMonthArchiveView", + "docstring": "List of objects published in a given month.", + "line_number": 482, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 610, - "name": "BaseTodayArchiveView", - "docs_url": "", - "docstring": "List of objects published today.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseTodayArchiveView", + "docstring": "List of objects published today.", + "line_number": 610, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 523, - "name": "BaseWeekArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given week.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseWeekArchiveView", + "docstring": "List of objects published in a given week.", + "line_number": 523, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 430, - "name": "BaseYearArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseYearArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 430, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 663, - "name": "DateDetailView", - "docs_url": "", - "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DateDetailView", + "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", + "line_number": 663, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 257, - "name": "DateMixin", - "docs_url": "", - "docstring": "Mixin class for views manipulating date-based data.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "DateMixin", + "docstring": "Mixin class for views manipulating date-based data.", + "line_number": 257, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 603, - "name": "DayArchiveView", - "docs_url": "", - "docstring": "List of objects published on a given day.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DayArchiveView", + "docstring": "List of objects published on a given day.", + "line_number": 603, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 131, - "name": "DayMixin", - "docs_url": "", - "docstring": "Mixin for views manipulating day-based data.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "DayMixin", + "docstring": "Mixin for views manipulating day-based data.", + "line_number": 131, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 516, - "name": "MonthArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given month.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "MonthArchiveView", + "docstring": "List of objects published in a given month.", + "line_number": 516, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 72, - "name": "MonthMixin", - "docs_url": "", - "docstring": "Mixin for views manipulating month-based data.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "MonthMixin", + "docstring": "Mixin for views manipulating month-based data.", + "line_number": 72, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 622, - "name": "TodayArchiveView", - "docs_url": "", - "docstring": "List of objects published today.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "TodayArchiveView", + "docstring": "List of objects published today.", + "line_number": 622, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 561, - "name": "WeekArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given week.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "WeekArchiveView", + "docstring": "List of objects published in a given week.", + "line_number": 561, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 187, - "name": "WeekMixin", - "docs_url": "", - "docstring": "Mixin for views manipulating week-based data.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "WeekMixin", + "docstring": "Mixin for views manipulating week-based data.", + "line_number": 187, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 475, - "name": "YearArchiveView", - "docs_url": "", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "YearArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 475, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 16, - "name": "YearMixin", - "docs_url": "", - "docstring": "Mixin for views manipulating year-based data.", "module": [ "django.views.generic.dates", "Django", "1.6" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "YearMixin", + "docstring": "Mixin for views manipulating year-based data.", + "line_number": 16, + "import_path": "django.views.generic.dates", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 105, - "name": "BaseDetailView", - "docs_url": "", - "docstring": "A base view for displaying a single object", "module": [ "django.views.generic.detail", "Django", "1.6" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDetailView", + "docstring": "A base view for displaying a single object", + "line_number": 105, + "import_path": "django.views.generic.detail", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 167, - "name": "DetailView", - "docs_url": "", - "docstring": "Render a \"detail\" view of an object.\n\nBy default this is a model instance looked up from `self.queryset`, but the\nview will support display of *any* object by overriding `self.get_object()`.", "module": [ "django.views.generic.detail", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DetailView", + "docstring": "Render a \"detail\" view of an object.\n\nBy default this is a model instance looked up from `self.queryset`, but the\nview will support display of *any* object by overriding `self.get_object()`.", + "line_number": 167, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 10, - "name": "SingleObjectMixin", - "docs_url": "", - "docstring": "Provides the ability to retrieve a single object for further manipulation.", "module": [ "django.views.generic.detail", "Django", "1.6" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "SingleObjectMixin", + "docstring": "Provides the ability to retrieve a single object for further manipulation.", + "line_number": 10, + "import_path": "django.views.generic.detail", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 115, - "name": "SingleObjectTemplateResponseMixin", - "docs_url": "", - "docstring": "", "module": [ "django.views.generic.detail", "Django", "1.6" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "SingleObjectTemplateResponseMixin", + "docstring": "", + "line_number": 115, + "import_path": "django.views.generic.detail", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 193, - "name": "BaseCreateView", - "docs_url": "", - "docstring": "Base view for creating an new object instance.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.6" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseCreateView", + "docstring": "Base view for creating an new object instance.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 193, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 267, - "name": "BaseDeleteView", - "docs_url": "", - "docstring": "Base view for deleting an object.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.6" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDeleteView", + "docstring": "Base view for deleting an object.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 267, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 181, - "name": "BaseFormView", - "docs_url": "", - "docstring": "A base view for displaying a form", "module": [ "django.views.generic.edit", "Django", "1.6" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseFormView", + "docstring": "A base view for displaying a form", + "line_number": 181, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 216, - "name": "BaseUpdateView", - "docs_url": "", - "docstring": "Base view for updating an existing object.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.6" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseUpdateView", + "docstring": "Base view for updating an existing object.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 216, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 208, - "name": "CreateView", - "docs_url": "", - "docstring": "View for creating a new object instance,\nwith a response rendered by template.", "module": [ "django.views.generic.edit", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "CreateView", + "docstring": "View for creating a new object instance,\nwith a response rendered by template.", + "line_number": 208, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 275, - "name": "DeleteView", - "docs_url": "", - "docstring": "View for deleting an object retrieved with `self.get_object()`,\nwith a response rendered by template.", "module": [ "django.views.generic.edit", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DeleteView", + "docstring": "View for deleting an object retrieved with `self.get_object()`,\nwith a response rendered by template.", + "line_number": 275, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 239, - "name": "DeletionMixin", - "docs_url": "", - "docstring": "A mixin providing the ability to delete objects", "module": [ "django.views.generic.edit", "Django", "1.6" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "DeletionMixin", + "docstring": "A mixin providing the ability to delete objects", + "line_number": 239, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 12, - "name": "FormMixin", - "docs_url": "", - "docstring": "A mixin that provides a way to show and handle a form in a request.", "module": [ "django.views.generic.edit", "Django", "1.6" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "FormMixin", + "docstring": "A mixin that provides a way to show and handle a form in a request.", + "line_number": 12, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 187, - "name": "FormView", - "docs_url": "", - "docstring": "A view for displaying a form, and rendering a template response.", "module": [ "django.views.generic.edit", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "FormView", + "docstring": "A view for displaying a form, and rendering a template response.", + "line_number": 187, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 88, - "name": "ModelFormMixin", - "docs_url": "", - "docstring": "A mixin that provides a way to show and handle a modelform in a request.", "module": [ "django.views.generic.edit", "Django", "1.6" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "ModelFormMixin", + "docstring": "A mixin that provides a way to show and handle a modelform in a request.", + "line_number": 88, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 151, - "name": "ProcessFormView", - "docs_url": "", - "docstring": "A mixin that renders a form on GET and processes it on POST.", "module": [ "django.views.generic.edit", "Django", "1.6" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "ProcessFormView", + "docstring": "A mixin that renders a form on GET and processes it on POST.", + "line_number": 151, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 231, - "name": "UpdateView", - "docs_url": "", - "docstring": "View for updating an object,\nwith a response rendered by template.", "module": [ "django.views.generic.edit", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "UpdateView", + "docstring": "View for updating an object,\nwith a response rendered by template.", + "line_number": 231, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 132, - "name": "BaseListView", - "docs_url": "", - "docstring": "A base view for displaying a list of objects.", "module": [ "django.views.generic.list", "Django", "1.6" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseListView", + "docstring": "A base view for displaying a list of objects.", + "line_number": 132, + "import_path": "django.views.generic.list", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 185, - "name": "ListView", - "docs_url": "", - "docstring": "Render some list of objects, set by `self.model` or `self.queryset`.\n`self.queryset` can actually be any iterable of items, not just a queryset.", "module": [ "django.views.generic.list", "Django", "1.6" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "ListView", + "docstring": "Render some list of objects, set by `self.model` or `self.queryset`.\n`self.queryset` can actually be any iterable of items, not just a queryset.", + "line_number": 185, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 10, - "name": "MultipleObjectMixin", - "docs_url": "", - "docstring": "A mixin for views manipulating multiple objects.", "module": [ "django.views.generic.list", "Django", "1.6" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "MultipleObjectMixin", + "docstring": "A mixin for views manipulating multiple objects.", + "line_number": 10, + "import_path": "django.views.generic.list", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 156, - "name": "MultipleObjectTemplateResponseMixin", - "docs_url": "", - "docstring": "Mixin for responding with a template and list of objects.", "module": [ "django.views.generic.list", "Django", "1.6" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "MultipleObjectTemplateResponseMixin", + "docstring": "Mixin for responding with a template and list of objects.", + "line_number": 156, + "import_path": "django.views.generic.list", + "docs_url": "" + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", + "CookieWizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "", - "name": "all" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "NamedUrlCookieWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "True", - "name": "allow_empty" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "NamedUrlSessionWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "False", - "name": "allow_empty" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DateMixin", - "django.views.generic.dates", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "False", - "name": "allow_future" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "done_step_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "", - "name": "args" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "url_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", + "SessionWizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "None", - "name": "condition_dict" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "None", - "name": "content_type" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "all", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "'latest'", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "count", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "None", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "current", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "None", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "first", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "StepsHelper", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "", - "name": "count" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "index", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "StepsHelper", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "", - "name": "current" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "last", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DateMixin", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "None", - "name": "date_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "next", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "'month'", - "name": "date_list_period" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "prev", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "'day'", - "name": "date_list_period" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "step0", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "'year'", - "name": "date_list_period" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "step1", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], + "name": "condition_dict", "value": "None", - "name": "day" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "'%d'", - "name": "day_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "form_list", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "", - "name": "__delattr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "initial_dict", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlWizardView", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], + "name": "instance_dict", "value": "None", - "name": "done_step_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], + "name": "storage_name", "value": "None", - "name": "fields" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "value": "", - "name": "first" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name", + "value": "'formtools/wizard/wizard_form.html'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.6" ], - "value": "None", - "name": "form_class" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "args", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.6" ], - "value": "None", - "name": "form_list" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__delattr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.6" ], + "name": "__getattribute__", "value": "", - "name": "__getattribute__" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.6" ], + "name": "__getitem__", "value": "", - "name": "__getitem__" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.6" ], + "name": "__getslice__", "value": "", - "name": "__getslice__" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { - "fields": { - "line_number": -1, - "klass": [ - "View", - "django.views.generic.base", - "Django", - "1.6" - ], - "value": "[u'get', u'post', u'put', u'patch', u'delete', u'head', u'options', u'trace']", - "name": "http_method_names" - }, "model": "cbv.klassattribute", - "pk": null -}, -{ + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.6" ], - "value": "", - "name": "index" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__init__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.6" ], - "value": "", - "name": "__init__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "message", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.6" ], - "value": "{}", - "name": "initial" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__reduce__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.6" ], - "value": "None", - "name": "initial_dict" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__repr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.6" ], - "value": "None", - "name": "instance_dict" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__setattr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.6" ], - "value": "", - "name": "last" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__setstate__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.6" ], - "value": "False", - "name": "make_object_list" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__str__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.6" ], - "value": "", - "name": "message" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__unicode__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "1.6" ], + "name": "pattern_name", "value": "None", - "name": "model" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "1.6" ], - "value": "None", - "name": "model" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "permanent", + "value": "True", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.6" ], - "value": "None", - "name": "month" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "query_string", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.6" ], - "value": "'%b'", - "name": "month_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.6" ], - "value": "", - "name": "next" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "content_type", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.6" ], - "value": "'page'", - "name": "page_kwarg" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "response_class", + "value": "", + "line_number": 137 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.6" ], + "name": "template_name", "value": "None", - "name": "paginate_by" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "1.6" ], - "value": "0", - "name": "paginate_orphans" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "http_method_names", + "value": "[u'get', u'post', u'put', u'patch', u'delete', u'head', u'options', u'trace']", + "line_number": -1 + } }, { - "fields": { - "line_number": 19, - "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", - "Django", - "1.6" - ], - "value": "", - "name": "paginator_class" - }, "model": "cbv.klassattribute", - "pk": null -}, -{ + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.6" ], - "value": "None", - "name": "pattern_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.6" ], - "value": "True", - "name": "permanent" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "context_object_name", + "value": "'latest'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" ], - "value": "'pk'", - "name": "pk_url_kwarg" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "allow_empty", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" ], - "value": "None", - "name": "prefix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "date_list_period", + "value": "'year'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.6" ], - "value": "", - "name": "prev" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "date_list_period", + "value": "'day'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.6" ], - "value": "None", - "name": "queryset" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "date_list_period", + "value": "'month'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.6" ], - "value": "None", - "name": "queryset" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "make_object_list", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "DateMixin", + "django.views.generic.dates", "Django", "1.6" ], + "name": "allow_future", "value": "False", - "name": "query_string" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DateMixin", + "django.views.generic.dates", "Django", "1.6" ], - "value": "", - "name": "__reduce__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "date_field", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DateMixin", + "django.views.generic.dates", "Django", "1.6" ], - "value": "", - "name": "__repr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "uses_datetime_field", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": 137, "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.6" ], - "value": "", - "name": "response_class" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_day'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DayMixin", + "django.views.generic.dates", "Django", "1.6" ], - "value": "", - "name": "__setattr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "day", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DayMixin", + "django.views.generic.dates", "Django", "1.6" ], - "value": "", - "name": "__setstate__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "day_format", + "value": "'%d'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.6" ], - "value": "'slug'", - "name": "slug_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_month'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.6" ], - "value": "'slug'", - "name": "slug_url_kwarg" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "month", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "MonthMixin", + "django.views.generic.dates", "Django", "1.6" ], - "value": "", - "name": "step0" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "month_format", + "value": "'%b'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.6" ], - "value": "", - "name": "step1" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_day'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SessionWizardView", - "django.contrib.formtools.wizard.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.6" ], - "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_week'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlSessionWizardView", - "django.contrib.formtools.wizard.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.6" ], - "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "week", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlCookieWizardView", - "django.contrib.formtools.wizard.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.6" ], - "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "week_format", + "value": "'%U'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "CookieWizardView", - "django.contrib.formtools.wizard.views", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.6" ], - "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_year'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.6" ], + "name": "year", "value": "None", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "YearMixin", + "django.views.generic.dates", "Django", "1.6" ], - "value": "", - "name": "__str__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "year_format", + "value": "'%Y'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.6" ], + "name": "context_object_name", "value": "None", - "name": "success_url" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.6" ], + "name": "model", "value": "None", - "name": "success_url" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.6" ], - "value": "'formtools/wizard/wizard_form.html'", - "name": "template_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "pk_url_kwarg", + "value": "'pk'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.6" ], + "name": "queryset", "value": "None", - "name": "template_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "1.6" ], - "value": "None", - "name": "template_name_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "slug_field", + "value": "'slug'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.6" ], - "value": "'_archive_week'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "slug_url_kwarg", + "value": "'slug'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.6" ], - "value": "'_archive'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_field", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.6" ], - "value": "'_archive_day'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_detail'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "1.6" ], - "value": "'_archive_month'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_form'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.6" ], - "value": "'_archive_day'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_confirm_delete'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.6" ], - "value": "'_archive_year'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "success_url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormMixin", + "django.views.generic.edit", "Django", "1.6" ], - "value": "'_detail'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "form_class", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "UpdateView", + "FormMixin", "django.views.generic.edit", "Django", "1.6" ], - "value": "'_form'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "initial", + "value": "{}", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "1.6" ], - "value": "'_list'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "prefix", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "CreateView", + "FormMixin", "django.views.generic.edit", "Django", "1.6" ], - "value": "'_form'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "success_url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DeleteView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.6" ], - "value": "'_confirm_delete'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "fields", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "UpdateView", + "django.views.generic.edit", "Django", "1.6" ], - "value": "", - "name": "__unicode__" - }, + "name": "template_name_suffix", + "value": "'_form'", + "line_number": -1 + } +}, +{ "model": "cbv.klassattribute", - "pk": null + "pk": null, + "fields": { + "klass": [ + "MultipleObjectMixin", + "django.views.generic.list", + "Django", + "1.6" + ], + "name": "allow_empty", + "value": "True", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], + "name": "context_object_name", "value": "None", - "name": "url" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], + "name": "model", "value": "None", - "name": "url_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DateMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], - "value": "", - "name": "uses_datetime_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "page_kwarg", + "value": "'page'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], + "name": "paginate_by", "value": "None", - "name": "week" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], - "value": "'%U'", - "name": "week_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "paginate_orphans", + "value": "0", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], - "value": "None", - "name": "year" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "paginator_class", + "value": "", + "line_number": 19 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], - "value": "'%Y'", - "name": "year_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "queryset", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": 107, - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", - "name": "_allowed_methods", - "docstring": "", "klass": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "template_name_suffix", + "value": "'_list'", + "line_number": -1 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 113, - "code": "@classonlymethod\ndef as_view(cls, *args, **kwargs):\n \"\"\"\n This method is used within urls.py to create unique wizardview\n instances for every request. We need to override this method because\n we add some kwargs which are needed to make the wizardview usable.\n \"\"\"\n initkwargs = cls.get_initkwargs(*args, **kwargs)\n return super(WizardView, cls).as_view(**initkwargs)\n", - "name": "as_view", - "docstring": "This method is used within urls.py to create unique wizardview\ninstances for every request. We need to override this method because\nwe add some kwargs which are needed to make the wizardview usable.", "klass": [ - "WizardView", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "cls, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "This renders the form or, if needed, does the http redirects.", + "code": "def get(self, *args, **kwargs):\n \"\"\"\n This renders the form or, if needed, does the http redirects.\n \"\"\"\n step_url = kwargs.get('step', None)\n if step_url is None:\n if 'reset' in self.request.GET:\n self.storage.reset()\n self.storage.current_step = self.steps.first\n if self.request.GET:\n query_string = \"?%s\" % self.request.GET.urlencode()\n else:\n query_string = \"\"\n return redirect(self.get_step_url(self.steps.current)\n + query_string)\n # is the current step the \"done\" name/view?\n elif step_url == self.done_step_name:\n last_step = self.steps.last\n return self.render_done(self.get_form(step=last_step,\n data=self.storage.get_step_data(last_step),\n files=self.storage.get_step_files(last_step)\n ), **kwargs)\n # is the url step name not equal to the step in the storage?\n # if yes, change the step in the storage (if name exists)\n elif step_url == self.steps.current:\n # URL step name and storage step name are equal, render!\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n elif step_url in self.get_form_list():\n self.storage.current_step = step_url\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n # invalid step name, reset to first and redirect.\n else:\n self.storage.current_step = self.steps.first\n return redirect(self.get_step_url(self.steps.first))\n", + "kwargs": "self, *args, **kwargs", + "line_number": 620 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 46, - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n # sanitize keyword arguments\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "name": "as_view", - "docstring": "Main entry point for a request-response process.", "klass": [ - "View", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "cls, **initkwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "NamedUrlWizardView provides the url_name of this wizard in the context\ndict `wizard`.", + "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n NamedUrlWizardView provides the url_name of this wizard in the context\n dict `wizard`.\n \"\"\"\n context = super(NamedUrlWizardView, self).get_context_data(form=form, **kwargs)\n context['wizard']['url_name'] = self.url_name\n return context\n", + "kwargs": "self, form, **kwargs", + "line_number": 675 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 212, - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "delete", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_initkwargs", + "docstring": "We require a url_name to reverse URLs later. Additionally users can\npass a done_step_name to change the URL name of the \"done\" view.", + "code": "@classmethod\ndef get_initkwargs(cls, *args, **kwargs):\n \"\"\"\n We require a url_name to reverse URLs later. Additionally users can\n pass a done_step_name to change the URL name of the \"done\" view.\n \"\"\"\n assert 'url_name' in kwargs, 'URL name is needed to resolve correct wizard URLs'\n extra_kwargs = {\n 'done_step_name': kwargs.pop('done_step_name', 'done'),\n 'url_name': kwargs.pop('url_name'),\n }\n initkwargs = super(NamedUrlWizardView, cls).get_initkwargs(*args, **kwargs)\n initkwargs.update(extra_kwargs)\n assert initkwargs['done_step_name'] not in initkwargs['form_list'], \\\n 'step name \"%s\" is reserved for \"done\" view' % initkwargs['done_step_name']\n return initkwargs\n", + "kwargs": "cls, *args, **kwargs", + "line_number": 599 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 245, - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", - "name": "delete", - "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_step_url", + "docstring": "", + "code": "def get_step_url(self, step):\n return reverse(self.url_name, kwargs={'step': step})\n", + "kwargs": "self, step", + "line_number": 617 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 36, - "code": "def __dir__(self):\n return self.all\n", - "name": "__dir__", - "docstring": "", "klass": [ - "StepsHelper", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "Do a redirect if user presses the prev. step button. The rest of this\nis super'd from WizardView.", + "code": "def post(self, *args, **kwargs):\n \"\"\"\n Do a redirect if user presses the prev. step button. The rest of this\n is super'd from WizardView.\n \"\"\"\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n return self.render_goto_step(wizard_goto_step)\n return super(NamedUrlWizardView, self).post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 665 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 79, - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", - "name": "dispatch", - "docstring": "", "klass": [ - "View", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "render_done", + "docstring": "When rendering the done view, we have to redirect first (if the URL\nname doesn't fit).", + "code": "def render_done(self, form, **kwargs):\n \"\"\"\n When rendering the done view, we have to redirect first (if the URL\n name doesn't fit).\n \"\"\"\n if kwargs.get('step', None) != self.done_step_name:\n return redirect(self.get_step_url(self.done_step_name))\n return super(NamedUrlWizardView, self).render_done(form, **kwargs)\n", + "kwargs": "self, form, **kwargs", + "line_number": 709 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 221, - "code": "def dispatch(self, request, *args, **kwargs):\n \"\"\"\n This method gets called by the routing engine. The first argument is\n `request` which contains a `HttpRequest` instance.\n The request is stored in `self.request` for later use. The storage\n instance is stored in `self.storage`.\n After processing the request using the `dispatch` method, the\n response gets updated by the storage engine (for example add cookies).\n \"\"\"\n # add the storage engine to the current wizardview instance\n self.prefix = self.get_prefix(*args, **kwargs)\n self.storage = get_storage(self.storage_name, self.prefix, request,\n getattr(self, 'file_storage', None))\n self.steps = StepsHelper(self)\n response = super(WizardView, self).dispatch(request, *args, **kwargs)\n # update the response (e.g. adding cookies)\n self.storage.update_response(response)\n return response\n", - "name": "dispatch", - "docstring": "This method gets called by the routing engine. The first argument is\n`request` which contains a `HttpRequest` instance.\nThe request is stored in `self.request` for later use. The storage\ninstance is stored in `self.storage`.\n\nAfter processing the request using the `dispatch` method, the\nresponse gets updated by the storage engine (for example add cookies).", "klass": [ - "WizardView", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "render_goto_step", + "docstring": "This method gets called when the current step has to be changed.\n`goto_step` contains the requested step to go to.", + "code": "def render_goto_step(self, goto_step, **kwargs):\n \"\"\"\n This method gets called when the current step has to be changed.\n `goto_step` contains the requested step to go to.\n \"\"\"\n self.storage.current_step = goto_step\n return redirect(self.get_step_url(goto_step))\n", + "kwargs": "self, goto_step, **kwargs", + "line_number": 693 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 569, - "code": "def done(self, form_list, **kwargs):\n \"\"\"\n This method must be overridden by a subclass to process to form data\n after processing all steps.\n \"\"\"\n raise NotImplementedError(\"Your %s class has not defined a done() \"\n \"method, which is required.\" % self.__class__.__name__)\n", - "name": "done", - "docstring": "This method must be overridden by a subclass to process to form data\nafter processing all steps.", "klass": [ - "WizardView", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, form_list, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "render_next_step", + "docstring": "When using the NamedUrlWizardView, we have to redirect to update the\nbrowser's URL to match the shown step.", + "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n When using the NamedUrlWizardView, we have to redirect to update the\n browser's URL to match the shown step.\n \"\"\"\n next_step = self.get_next_step()\n self.storage.current_step = next_step\n return redirect(self.get_step_url(next_step))\n", + "kwargs": "self, form, **kwargs", + "line_number": 684 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 80, - "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "name": "form_invalid", - "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "render_revalidation_failure", + "docstring": "When a step fails, we have to redirect the user to the first failing\nstep.", + "code": "def render_revalidation_failure(self, failed_step, form, **kwargs):\n \"\"\"\n When a step fails, we have to redirect the user to the first failing\n step.\n \"\"\"\n self.storage.current_step = failed_step\n return redirect(self.get_step_url(failed_step))\n", + "kwargs": "self, failed_step, form, **kwargs", + "line_number": 701 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 74, - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "__dir__", + "docstring": "", + "code": "def __dir__(self):\n return self.all\n", + "kwargs": "self", + "line_number": 36 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 143, - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", - "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "__init__", + "docstring": "", + "code": "def __init__(self, wizard):\n self._wizard = wizard\n", + "kwargs": "self, wizard", + "line_number": 33 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 109, - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "__len__", + "docstring": "", + "code": "def __len__(self):\n return self.count\n", + "kwargs": "self", + "line_number": 39 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 222, - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "__repr__", + "docstring": "", + "code": "def __repr__(self):\n return '' % (self._wizard, self.all)\n", + "kwargs": "self", + "line_number": 42 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 332, - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "as_view", + "docstring": "This method is used within urls.py to create unique wizardview\ninstances for every request. We need to override this method because\nwe add some kwargs which are needed to make the wizardview usable.", + "code": "@classonlymethod\ndef as_view(cls, *args, **kwargs):\n \"\"\"\n This method is used within urls.py to create unique wizardview\n instances for every request. We need to override this method because\n we add some kwargs which are needed to make the wizardview usable.\n \"\"\"\n initkwargs = cls.get_initkwargs(*args, **kwargs)\n return super(WizardView, cls).as_view(**initkwargs)\n", + "kwargs": "cls, *args, **kwargs", + "line_number": 113 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 155, - "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n return self.render_to_response(self.get_context_data(form=form))\n", - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "dispatch", + "docstring": "This method gets called by the routing engine. The first argument is\n`request` which contains a `HttpRequest` instance.\nThe request is stored in `self.request` for later use. The storage\ninstance is stored in `self.storage`.\n\nAfter processing the request using the `dispatch` method, the\nresponse gets updated by the storage engine (for example add cookies).", + "code": "def dispatch(self, request, *args, **kwargs):\n \"\"\"\n This method gets called by the routing engine. The first argument is\n `request` which contains a `HttpRequest` instance.\n The request is stored in `self.request` for later use. The storage\n instance is stored in `self.storage`.\n After processing the request using the `dispatch` method, the\n response gets updated by the storage engine (for example add cookies).\n \"\"\"\n # add the storage engine to the current wizardview instance\n self.prefix = self.get_prefix(*args, **kwargs)\n self.storage = get_storage(self.storage_name, self.prefix, request,\n getattr(self, 'file_storage', None))\n self.steps = StepsHelper(self)\n response = super(WizardView, self).dispatch(request, *args, **kwargs)\n # update the response (e.g. adding cookies)\n self.storage.update_response(response)\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 221 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 242, - "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n This method handles GET requests.\n If a GET request reaches this point, the wizard assumes that the user\n just starts at the first step or wants to restart the process.\n The data of the wizard will be resetted before rendering the first step.\n \"\"\"\n self.storage.reset()\n # reset the current step to the first step.\n self.storage.current_step = self.steps.first\n return self.render(self.get_form())\n", - "name": "get", - "docstring": "This method handles GET requests.\n\nIf a GET request reaches this point, the wizard assumes that the user\njust starts at the first step or wants to restart the process.\nThe data of the wizard will be resetted before rendering the first step.", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "done", + "docstring": "This method must be overridden by a subclass to process to form data\nafter processing all steps.", + "code": "def done(self, form_list, **kwargs):\n \"\"\"\n This method must be overridden by a subclass to process to form data\n after processing all steps.\n \"\"\"\n raise NotImplementedError(\"Your %s class has not defined a done() \"\n \"method, which is required.\" % self.__class__.__name__)\n", + "kwargs": "self, form_list, **kwargs", + "line_number": 569 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 188, - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s', self.request.path,\n extra={\n 'status_code': 410,\n 'request': self.request\n })\n return http.HttpResponseGone()\n", - "name": "get", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "This method handles GET requests.\n\nIf a GET request reaches this point, the wizard assumes that the user\njust starts at the first step or wants to restart the process.\nThe data of the wizard will be resetted before rendering the first step.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n This method handles GET requests.\n If a GET request reaches this point, the wizard assumes that the user\n just starts at the first step or wants to restart the process.\n The data of the wizard will be resetted before rendering the first step.\n \"\"\"\n self.storage.reset()\n # reset the current step to the first step.\n self.storage.current_step = self.steps.first\n return self.render(self.get_form())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 242 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 153, - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "TemplateView", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_all_cleaned_data", + "docstring": "Returns a merged dictionary of all step cleaned_data dictionaries.\nIf a step contains a `FormSet`, the key will be prefixed with\n'formset-' and contain a list of the formset cleaned_data dictionaries.", + "code": "def get_all_cleaned_data(self):\n \"\"\"\n Returns a merged dictionary of all step cleaned_data dictionaries.\n If a step contains a `FormSet`, the key will be prefixed with\n 'formset-' and contain a list of the formset cleaned_data dictionaries.\n \"\"\"\n cleaned_data = {}\n for form_key in self.get_form_list():\n form_obj = self.get_form(\n step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key)\n )\n if form_obj.is_valid():\n if isinstance(form_obj.cleaned_data, (tuple, list)):\n cleaned_data.update({\n 'formset-%s' % form_key: form_obj.cleaned_data\n })\n else:\n cleaned_data.update(form_obj.cleaned_data)\n return cleaned_data\n", + "kwargs": "self", + "line_number": 456 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 620, - "code": "def get(self, *args, **kwargs):\n \"\"\"\n This renders the form or, if needed, does the http redirects.\n \"\"\"\n step_url = kwargs.get('step', None)\n if step_url is None:\n if 'reset' in self.request.GET:\n self.storage.reset()\n self.storage.current_step = self.steps.first\n if self.request.GET:\n query_string = \"?%s\" % self.request.GET.urlencode()\n else:\n query_string = \"\"\n return redirect(self.get_step_url(self.steps.current)\n + query_string)\n # is the current step the \"done\" name/view?\n elif step_url == self.done_step_name:\n last_step = self.steps.last\n return self.render_done(self.get_form(step=last_step,\n data=self.storage.get_step_data(last_step),\n files=self.storage.get_step_files(last_step)\n ), **kwargs)\n # is the url step name not equal to the step in the storage?\n # if yes, change the step in the storage (if name exists)\n elif step_url == self.steps.current:\n # URL step name and storage step name are equal, render!\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n elif step_url in self.get_form_list():\n self.storage.current_step = step_url\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n # invalid step name, reset to first and redirect.\n else:\n self.storage.current_step = self.steps.first\n return redirect(self.get_step_url(self.steps.first))\n", - "name": "get", - "docstring": "This renders the form or, if needed, does the http redirects.", "klass": [ - "NamedUrlWizardView", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_cleaned_data_for_step", + "docstring": "Returns the cleaned data for a given `step`. Before returning the\ncleaned data, the stored values are revalidated through the form.\nIf the data doesn't validate, None will be returned.", + "code": "def get_cleaned_data_for_step(self, step):\n \"\"\"\n Returns the cleaned data for a given `step`. Before returning the\n cleaned data, the stored values are revalidated through the form.\n If the data doesn't validate, None will be returned.\n \"\"\"\n if step in self.form_list:\n form_obj = self.get_form(step=step,\n data=self.storage.get_step_data(step),\n files=self.storage.get_step_files(step))\n if form_obj.is_valid():\n return form_obj.cleaned_data\n return None\n", + "kwargs": "self, step", + "line_number": 478 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 199, - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Returns the template context for a step. You can overwrite this method\nto add more data for all or some steps. This method returns a\ndictionary containing the rendered form step. Available template\ncontext variables are:\n\n * all extra data stored in the storage backend\n * `wizard` - a dictionary representation of the wizard instance\n\nExample:\n\n.. code-block:: python\n\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context", + "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n Returns the template context for a step. You can overwrite this method\n to add more data for all or some steps. This method returns a\n dictionary containing the rendered form step. Available template\n context variables are:\n * all extra data stored in the storage backend\n * `wizard` - a dictionary representation of the wizard instance\n Example:\n .. code-block:: python\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context\n \"\"\"\n context = super(WizardView, self).get_context_data(form=form, **kwargs)\n context.update(self.storage.extra_data)\n context['wizard'] = {\n 'form': form,\n 'steps': self.steps,\n 'management_form': ManagementForm(prefix=self.prefix, initial={\n 'current_step': self.steps.current,\n }),\n }\n return context\n", + "kwargs": "self, form, **kwargs", + "line_number": 529 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 136, - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if (self.get_paginate_by(self.object_list) is not None\n and hasattr(self.object_list, 'exists')):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data()\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseListView", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form", + "docstring": "Constructs the form for a given `step`. If no `step` is defined, the\ncurrent step will be determined automatically.\n\nThe form will be initialized using the `data` argument to prefill the\nnew form. If needed, instance or queryset (for `ModelForm` or\n`ModelFormSet`) will be added too.", + "code": "def get_form(self, step=None, data=None, files=None):\n \"\"\"\n Constructs the form for a given `step`. If no `step` is defined, the\n current step will be determined automatically.\n The form will be initialized using the `data` argument to prefill the\n new form. If needed, instance or queryset (for `ModelForm` or\n `ModelFormSet`) will be added too.\n \"\"\"\n if step is None:\n step = self.steps.current\n # prepare the kwargs for the form instance.\n kwargs = self.get_form_kwargs(step)\n kwargs.update({\n 'data': data,\n 'files': files,\n 'prefix': self.get_form_prefix(step, self.form_list[step]),\n 'initial': self.get_form_initial(step),\n })\n if issubclass(self.form_list[step], forms.ModelForm):\n # If the form is based on ModelForm, add instance if available\n # and not previously set.\n kwargs.setdefault('instance', self.get_form_instance(step))\n elif issubclass(self.form_list[step], forms.models.BaseModelFormSet):\n # If the form is based on ModelFormSet, add queryset if available\n # and not previous set.\n kwargs.setdefault('queryset', self.get_form_instance(step))\n return self.form_list[step](**kwargs)\n", + "kwargs": "self, step=None, data=None, files=None", + "line_number": 390 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 456, - "code": "def get_all_cleaned_data(self):\n \"\"\"\n Returns a merged dictionary of all step cleaned_data dictionaries.\n If a step contains a `FormSet`, the key will be prefixed with\n 'formset-' and contain a list of the formset cleaned_data dictionaries.\n \"\"\"\n cleaned_data = {}\n for form_key in self.get_form_list():\n form_obj = self.get_form(\n step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key)\n )\n if form_obj.is_valid():\n if isinstance(form_obj.cleaned_data, (tuple, list)):\n cleaned_data.update({\n 'formset-%s' % form_key: form_obj.cleaned_data\n })\n else:\n cleaned_data.update(form_obj.cleaned_data)\n return cleaned_data\n", - "name": "get_all_cleaned_data", - "docstring": "Returns a merged dictionary of all step cleaned_data dictionaries.\nIf a step contains a `FormSet`, the key will be prefixed with\n'formset-' and contain a list of the formset cleaned_data dictionaries.", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_initial", + "docstring": "Returns a dictionary which will be passed to the form for `step`\nas `initial`. If no initial data was provied while initializing the\nform wizard, a empty dictionary will be returned.", + "code": "def get_form_initial(self, step):\n \"\"\"\n Returns a dictionary which will be passed to the form for `step`\n as `initial`. If no initial data was provied while initializing the\n form wizard, a empty dictionary will be returned.\n \"\"\"\n return self.initial_dict.get(step, {})\n", + "kwargs": "self, step", + "line_number": 367 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 86, - "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "name": "get_allow_empty", - "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_instance", + "docstring": "Returns a object which will be passed to the form for `step`\nas `instance`. If no instance object was provied while initializing\nthe form wizard, None will be returned.", + "code": "def get_form_instance(self, step):\n \"\"\"\n Returns a object which will be passed to the form for `step`\n as `instance`. If no instance object was provied while initializing\n the form wizard, None will be returned.\n \"\"\"\n return self.instance_dict.get(step, None)\n", + "kwargs": "self, step", + "line_number": 375 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 272, - "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", - "name": "get_allow_future", - "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form\n(or formset) on the given step.", + "code": "def get_form_kwargs(self, step=None):\n \"\"\"\n Returns the keyword arguments for instantiating the form\n (or formset) on the given step.\n \"\"\"\n return {}\n", + "kwargs": "self, step=None", + "line_number": 383 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 478, - "code": "def get_cleaned_data_for_step(self, step):\n \"\"\"\n Returns the cleaned data for a given `step`. Before returning the\n cleaned data, the stored values are revalidated through the form.\n If the data doesn't validate, None will be returned.\n \"\"\"\n if step in self.form_list:\n form_obj = self.get_form(step=step,\n data=self.storage.get_step_data(step),\n files=self.storage.get_step_files(step))\n if form_obj.is_valid():\n return form_obj.cleaned_data\n return None\n", - "name": "get_cleaned_data_for_step", - "docstring": "Returns the cleaned data for a given `step`. Before returning the\ncleaned data, the stored values are revalidated through the form.\nIf the data doesn't validate, None will be returned.", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_list", + "docstring": "This method returns a form_list based on the initial form list but\nchecks if there is a condition method/value in the condition_list.\nIf an entry exists in the condition list, it will call/read the value\nand respect the result. (True means add the form, False means ignore\nthe form)\n\nThe form_list is always generated on the fly because condition methods\ncould use data from other (maybe previous forms).", + "code": "def get_form_list(self):\n \"\"\"\n This method returns a form_list based on the initial form list but\n checks if there is a condition method/value in the condition_list.\n If an entry exists in the condition list, it will call/read the value\n and respect the result. (True means add the form, False means ignore\n the form)\n The form_list is always generated on the fly because condition methods\n could use data from other (maybe previous forms).\n \"\"\"\n form_list = SortedDict()\n for form_key, form_class in six.iteritems(self.form_list):\n # try to fetch the value from condition list, by default, the form\n # gets passed to the new list.\n condition = self.condition_dict.get(form_key, True)\n if callable(condition):\n # call the value if needed, passes the current instance.\n condition = condition(self)\n if condition:\n form_list[form_key] = form_class\n return form_list\n", + "kwargs": "self", + "line_number": 198 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 104, - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list', self.object_list)\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", - "name": "get_context_data", - "docstring": "Get the context for this view.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_prefix", + "docstring": "Returns the prefix which will be used when calling the actual form for\nthe given step. `step` contains the step-name, `form` the form which\nwill be called with the returned prefix.\n\nIf no step is given, the form_prefix will determine the current step\nautomatically.", + "code": "def get_form_prefix(self, step=None, form=None):\n \"\"\"\n Returns the prefix which will be used when calling the actual form for\n the given step. `step` contains the step-name, `form` the form which\n will be called with the returned prefix.\n If no step is given, the form_prefix will determine the current step\n automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n return str(step)\n", + "kwargs": "self, step=None, form=None", + "line_number": 354 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 675, - "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n NamedUrlWizardView provides the url_name of this wizard in the context\n dict `wizard`.\n \"\"\"\n context = super(NamedUrlWizardView, self).get_context_data(form=form, **kwargs)\n context['wizard']['url_name'] = self.url_name\n return context\n", - "name": "get_context_data", - "docstring": "NamedUrlWizardView provides the url_name of this wizard in the context\ndict `wizard`.", "klass": [ - "NamedUrlWizardView", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_step_data", + "docstring": "Is used to return the raw form data. You may use this method to\nmanipulate the data.", + "code": "def get_form_step_data(self, form):\n \"\"\"\n Is used to return the raw form data. You may use this method to\n manipulate the data.\n \"\"\"\n return form.data\n", + "kwargs": "self, form", + "line_number": 442 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 22, - "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", - "name": "get_context_data", - "docstring": "", "klass": [ - "ContextMixin", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_step_files", + "docstring": "Is used to return the raw form files. You may use this method to\nmanipulate the data.", + "code": "def get_form_step_files(self, form):\n \"\"\"\n Is used to return the raw form files. You may use this method to\n manipulate the data.\n \"\"\"\n return form.files\n", + "kwargs": "self, form", + "line_number": 449 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 529, - "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n Returns the template context for a step. You can overwrite this method\n to add more data for all or some steps. This method returns a\n dictionary containing the rendered form step. Available template\n context variables are:\n * all extra data stored in the storage backend\n * `wizard` - a dictionary representation of the wizard instance\n Example:\n .. code-block:: python\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context\n \"\"\"\n context = super(WizardView, self).get_context_data(form=form, **kwargs)\n context.update(self.storage.extra_data)\n context['wizard'] = {\n 'form': form,\n 'steps': self.steps,\n 'management_form': ManagementForm(prefix=self.prefix, initial={\n 'current_step': self.steps.current,\n }),\n }\n return context\n", - "name": "get_context_data", - "docstring": "Returns the template context for a step. You can overwrite this method\nto add more data for all or some steps. This method returns a\ndictionary containing the rendered form step. Available template\ncontext variables are:\n\n * all extra data stored in the storage backend\n * `wizard` - a dictionary representation of the wizard instance\n\nExample:\n\n.. code-block:: python\n\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_initkwargs", + "docstring": "Creates a dict with all needed parameters for the form wizard instances.\n\n* `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n* `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n* `instance_dict` - contains a dictionary whose values are model\n instances if the step is based on a ``ModelForm`` and querysets if\n the step is based on a ``ModelFormSet``. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n* `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.", + "code": "@classmethod\ndef get_initkwargs(cls, form_list=None, initial_dict=None,\n instance_dict=None, condition_dict=None, *args, **kwargs):\n \"\"\"\n Creates a dict with all needed parameters for the form wizard instances.\n * `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n * `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n * `instance_dict` - contains a dictionary whose values are model\n instances if the step is based on a ``ModelForm`` and querysets if\n the step is based on a ``ModelFormSet``. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n * `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.\n \"\"\"\n kwargs.update({\n 'initial_dict': initial_dict or kwargs.pop('initial_dict',\n getattr(cls, 'initial_dict', None)) or {},\n 'instance_dict': instance_dict or kwargs.pop('instance_dict',\n getattr(cls, 'instance_dict', None)) or {},\n 'condition_dict': condition_dict or kwargs.pop('condition_dict',\n getattr(cls, 'condition_dict', None)) or {}\n })\n form_list = form_list or kwargs.pop('form_list',\n getattr(cls, 'form_list', None)) or []\n computed_form_list = SortedDict()\n assert len(form_list) > 0, 'at least one form is needed'\n # walk through the passed form list\n for i, form in enumerate(form_list):\n if isinstance(form, (list, tuple)):\n # if the element is a tuple, add the tuple to the new created\n # sorted dictionary.\n computed_form_list[six.text_type(form[0])] = form[1]\n else:\n # if not, add the form with a zero based counter as unicode\n computed_form_list[six.text_type(i)] = form\n # walk through the new created list of forms\n for form in six.itervalues(computed_form_list):\n if issubclass(form, formsets.BaseFormSet):\n # if the element is based on BaseFormSet (FormSet/ModelFormSet)\n # we need to override the form variable.\n form = form.form\n # check if any form contains a FileField, if yes, we need a\n # file_storage added to the wizardview (by subclassing).\n for field in six.itervalues(form.base_fields):\n if (isinstance(field, forms.FileField) and\n not hasattr(cls, 'file_storage')):\n raise NoFileStorageConfigured(\n \"You need to define 'file_storage' in your \"\n \"wizard view in order to handle file uploads.\")\n # build the kwargs for the wizardview instances\n kwargs['form_list'] = computed_form_list\n return kwargs\n", + "kwargs": "cls, form_list=None, initial_dict=None, instance_dict=None, condition_dict=None, *args, **kwargs", + "line_number": 123 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 91, - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", - "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_step", + "docstring": "Returns the next step after the given `step`. If no more steps are\navailable, None will be returned. If the `step` argument is None, the\ncurrent step will be determined automatically.", + "code": "def get_next_step(self, step=None):\n \"\"\"\n Returns the next step after the given `step`. If no more steps are\n available, None will be returned. If the `step` argument is None, the\n current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n key = form_list.keyOrder.index(step) + 1\n if len(form_list.keyOrder) > key:\n return form_list.keyOrder[key]\n return None\n", + "kwargs": "self, step=None", + "line_number": 492 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 80, - "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, obj" - }, - "model": "cbv.method", - "pk": null + "name": "get_prefix", + "docstring": "", + "code": "def get_prefix(self, *args, **kwargs):\n # TODO: Add some kind of unique id to prefix\n return normalize_name(self.__class__.__name__)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 194 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 93, - "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, object_list" - }, - "model": "cbv.method", - "pk": null + "name": "get_prev_step", + "docstring": "Returns the previous step before the given `step`. If there are no\nsteps available, None will be returned. If the `step` argument is\nNone, the current step will be determined automatically.", + "code": "def get_prev_step(self, step=None):\n \"\"\"\n Returns the previous step before the given `step`. If there are no\n steps available, None will be returned. If the `step` argument is\n None, the current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n key = form_list.keyOrder.index(step) - 1\n if key >= 0:\n return form_list.keyOrder[key]\n return None\n", + "kwargs": "self, step=None", + "line_number": 506 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 180, - "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", "klass": [ - "DayMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_step_index", + "docstring": "Returns the index for the given `step` name. If no step is given,\nthe current step will be used to get the index.", + "code": "def get_step_index(self, step=None):\n \"\"\"\n Returns the index for the given `step` name. If no step is given,\n the current step will be used to get the index.\n \"\"\"\n if step is None:\n step = self.steps.current\n return self.get_form_list().keyOrder.index(step)\n", + "kwargs": "self, step=None", + "line_number": 520 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 124, - "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", "klass": [ - "MonthMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "This method handles POST requests.\n\nThe wizard will render either the current step (if form validation\nwasn't successful), the next step (if the current step was stored\nsuccessful) or the done view (if no more steps are available)", + "code": "def post(self, *args, **kwargs):\n \"\"\"\n This method handles POST requests.\n The wizard will render either the current step (if form validation\n wasn't successful), the next step (if the current step was stored\n successful) or the done view (if no more steps are available)\n \"\"\"\n # Look for a wizard_goto_step element in the posted data which\n # contains a valid step name. If one was found, render the requested\n # form. (This makes stepping back a lot easier).\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n return self.render_goto_step(wizard_goto_step)\n # Check if form was refreshed\n management_form = ManagementForm(self.request.POST, prefix=self.prefix)\n if not management_form.is_valid():\n raise ValidationError(\n _('ManagementForm data is missing or has been tampered.'),\n code='missing_management_form',\n )\n form_current_step = management_form.cleaned_data['current_step']\n if (form_current_step != self.steps.current and\n self.storage.current_step is not None):\n # form refreshed, change current step\n self.storage.current_step = form_current_step\n # get the form for the current step\n form = self.get_form(data=self.request.POST, files=self.request.FILES)\n # and try to validate\n if form.is_valid():\n # if the form is valid, store the cleaned data and files.\n self.storage.set_step_data(self.steps.current, self.process_step(form))\n self.storage.set_step_files(self.steps.current, self.process_step_files(form))\n # check if the current step is the last step\n if self.steps.current == self.steps.last:\n # no more steps, render done view\n return self.render_done(form, **kwargs)\n else:\n # proceed to the next step\n return self.render_next_step(form)\n return self.render(form)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 256 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 236, - "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "process_step", + "docstring": "This method is used to postprocess the form data. By default, it\nreturns the raw `form.data` dictionary.", + "code": "def process_step(self, form):\n \"\"\"\n This method is used to postprocess the form data. By default, it\n returns the raw `form.data` dictionary.\n \"\"\"\n return self.get_form_step_data(form)\n", + "kwargs": "self, form", + "line_number": 419 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 65, - "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", "klass": [ - "YearMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "process_step_files", + "docstring": "This method is used to postprocess the form files. By default, it\nreturns the raw `form.files` dictionary.", + "code": "def process_step_files(self, form):\n \"\"\"\n This method is used to postprocess the form files. By default, it\n returns the raw `form.files` dictionary.\n \"\"\"\n return self.get_form_step_files(form)\n", + "kwargs": "self, form", + "line_number": 426 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 586, - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "render", + "docstring": "Returns a ``HttpResponse`` containing all needed context data.", + "code": "def render(self, form=None, **kwargs):\n \"\"\"\n Returns a ``HttpResponse`` containing all needed context data.\n \"\"\"\n form = form or self.get_form()\n context = self.get_context_data(form=form, **kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, form=None, **kwargs", + "line_number": 561 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 488, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_done", + "docstring": "This method gets called when all forms passed. The method should also\nre-validate all steps to prevent manipulation. If any form don't\nvalidate, `render_revalidation_failure` should get called.\nIf everything is fine call `done`.", + "code": "def render_done(self, form, **kwargs):\n \"\"\"\n This method gets called when all forms passed. The method should also\n re-validate all steps to prevent manipulation. If any form don't\n validate, `render_revalidation_failure` should get called.\n If everything is fine call `done`.\n \"\"\"\n final_form_list = []\n # walk through the form list and try to validate the data again.\n for form_key in self.get_form_list():\n form_obj = self.get_form(step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key))\n if not form_obj.is_valid():\n return self.render_revalidation_failure(form_key, form_obj, **kwargs)\n final_form_list.append(form_obj)\n # render the done view and reset the wizard before returning the\n # response. This is needed to prevent from rendering done with the\n # same data twice.\n done_response = self.done(final_form_list, **kwargs)\n self.storage.reset()\n return done_response\n", + "kwargs": "self, form, **kwargs", + "line_number": 330 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 437, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(ordering='-%s' % date_field, **lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_goto_step", + "docstring": "This method gets called when the current step has to be changed.\n`goto_step` contains the requested step to go to.", + "code": "def render_goto_step(self, goto_step, **kwargs):\n \"\"\"\n This method gets called when the current step has to be changed.\n `goto_step` contains the requested step to go to.\n \"\"\"\n self.storage.current_step = goto_step\n form = self.get_form(\n data=self.storage.get_step_data(self.steps.current),\n files=self.storage.get_step_files(self.steps.current))\n return self.render(form)\n", + "kwargs": "self, goto_step, **kwargs", + "line_number": 319 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 528, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_next_step", + "docstring": "This method gets called when the next step/form should be rendered.\n`form` contains the last/current form.", + "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n This method gets called when the next step/form should be rendered.\n `form` contains the last/current form.\n \"\"\"\n # get the form instance based on the data from the storage backend\n # (if available).\n next_step = self.steps.next\n new_form = self.get_form(next_step,\n data=self.storage.get_step_data(next_step),\n files=self.storage.get_step_files(next_step))\n # change the stored current step\n self.storage.current_step = next_step\n return self.render(new_form, **kwargs)\n", + "kwargs": "self, form, **kwargs", + "line_number": 303 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 615, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_revalidation_failure", + "docstring": "Gets called when a form doesn't validate when rendering the done\nview. By default, it changes the current step to failing forms step\nand renders the form.", + "code": "def render_revalidation_failure(self, step, form, **kwargs):\n \"\"\"\n Gets called when a form doesn't validate when rendering the done\n view. By default, it changes the current step to failing forms step\n and renders the form.\n \"\"\"\n self.storage.current_step = step\n return self.render(form, **kwargs)\n", + "kwargs": "self, step, form, **kwargs", + "line_number": 433 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 572, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "__repr__", + "docstring": "", + "code": "def __repr__(self):\n return '<%s: forms: %s>' % (self.__class__.__name__, self.form_list)\n", + "kwargs": "self", + "line_number": 110 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 339, - "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", - "name": "get_dated_items", - "docstring": "Obtain the list of dates and items.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", + "kwargs": "self, **kwargs", + "line_number": 22 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 410, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset(ordering='-%s' % self.get_date_field())\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "delete", + "docstring": "", + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 212 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 345, - "code": "def get_dated_queryset(self, ordering=None, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if ordering is not None:\n qs = qs.order_by(ordering)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self, ordering=None, **lookup" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s', self.request.path,\n extra={\n 'status_code': 410,\n 'request': self.request\n })\n return http.HttpResponseGone()\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 188 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 264, - "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", + "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n try:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n except NoReverseMatch:\n return None\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", + "kwargs": "self, *args, **kwargs", + "line_number": 167 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 380, - "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self, queryset, date_type=None, ordering=u'ASC'" - }, - "model": "cbv.method", - "pk": null + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 203 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 374, - "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", - "name": "get_date_list_period", - "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "options", + "docstring": "", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 209 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 145, - "code": "def get_day(self):\n \"\"\"\n Return the day for which this view should display data.\n \"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", - "name": "get_day", - "docstring": "Return the day for which this view should display data.", "klass": [ - "DayMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "patch", + "docstring": "", + "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 218 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 138, - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", "klass": [ - "DayMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 206 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 40, - "code": "def get_form(self, form_class):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n return form_class(**self.get_form_kwargs())\n", - "name": "get_form", - "docstring": "Returns an instance of the form to be used in this view.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self, form_class" - }, - "model": "cbv.method", - "pk": null + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 215 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 390, - "code": "def get_form(self, step=None, data=None, files=None):\n \"\"\"\n Constructs the form for a given `step`. If no `step` is defined, the\n current step will be determined automatically.\n The form will be initialized using the `data` argument to prefill the\n new form. If needed, instance or queryset (for `ModelForm` or\n `ModelFormSet`) will be added too.\n \"\"\"\n if step is None:\n step = self.steps.current\n # prepare the kwargs for the form instance.\n kwargs = self.get_form_kwargs(step)\n kwargs.update({\n 'data': data,\n 'files': files,\n 'prefix': self.get_form_prefix(step, self.form_list[step]),\n 'initial': self.get_form_initial(step),\n })\n if issubclass(self.form_list[step], forms.ModelForm):\n # If the form is based on ModelForm, add instance if available\n # and not previously set.\n kwargs.setdefault('instance', self.get_form_instance(step))\n elif issubclass(self.form_list[step], forms.models.BaseModelFormSet):\n # If the form is based on ModelFormSet, add queryset if available\n # and not previous set.\n kwargs.setdefault('queryset', self.get_form_instance(step))\n return self.form_list[step](**kwargs)\n", - "name": "get_form", - "docstring": "Constructs the form for a given `step`. If no `step` is defined, the\ncurrent step will be determined automatically.\n\nThe form will be initialized using the `data` argument to prefill the\nnew form. If needed, instance or queryset (for `ModelForm` or\n`ModelFormSet`) will be added too.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self, step=None, data=None, files=None" - }, + "name": "get_template_names", + "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "kwargs": "self", + "line_number": 135 + } +}, +{ "model": "cbv.method", - "pk": null + "pk": null, + "fields": { + "klass": [ + "TemplateResponseMixin", + "django.views.generic.base", + "Django", + "1.6" + ], + "name": "render_to_response", + "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request = self.request,\n template = self.get_template_names(),\n context = context,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 119 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 94, - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n warnings.warn(\"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is deprecated.\" % self.__class__.__name__,\n PendingDeprecationWarning)\n return model_forms.modelform_factory(model, fields=self.fields)\n", - "name": "get_form_class", - "docstring": "Returns the form class to use in this view.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self" - }, + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 153 + } +}, +{ "model": "cbv.method", - "pk": null + "pk": null, + "fields": { + "klass": [ + "View", + "django.views.generic.base", + "Django", + "1.6" + ], + "name": "_allowed_methods", + "docstring": "", + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "kwargs": "self", + "line_number": 107 + } }, { + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "View", + "django.views.generic.base", + "Django", + "1.6" + ], + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n # sanitize keyword arguments\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 46 + } +}, +{ + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 34, - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", - "name": "get_form_class", - "docstring": "Returns the form class to use in this view", "klass": [ - "FormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 79 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 367, - "code": "def get_form_initial(self, step):\n \"\"\"\n Returns a dictionary which will be passed to the form for `step`\n as `initial`. If no initial data was provied while initializing the\n form wizard, a empty dictionary will be returned.\n \"\"\"\n return self.initial_dict.get(step, {})\n", - "name": "get_form_initial", - "docstring": "Returns a dictionary which will be passed to the form for `step`\nas `initial`. If no initial data was provied while initializing the\nform wizard, a empty dictionary will be returned.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "View", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning('Method Not Allowed (%s): %s', request.method, request.path,\n extra={\n 'status_code': 405,\n 'request': self.request\n }\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 89 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 375, - "code": "def get_form_instance(self, step):\n \"\"\"\n Returns a object which will be passed to the form for `step`\n as `instance`. If no instance object was provied while initializing\n the form wizard, None will be returned.\n \"\"\"\n return self.instance_dict.get(step, None)\n", - "name": "get_form_instance", - "docstring": "Returns a object which will be passed to the form for `step`\nas `instance`. If no instance object was provied while initializing\nthe form wizard, None will be returned.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "View", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", + "kwargs": "self, **kwargs", + "line_number": 36 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 120, - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n kwargs.update({'instance': self.object})\n return kwargs\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "options", + "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 98 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 383, - "code": "def get_form_kwargs(self, step=None):\n \"\"\"\n Returns the keyword arguments for instantiating the form\n (or formset) on the given step.\n \"\"\"\n return {}\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form\n(or formset) on the given step.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset(ordering='-%s' % self.get_date_field())\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", + "kwargs": "self", + "line_number": 410 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 46, - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = queryset or self.get_queryset()\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 634 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 198, - "code": "def get_form_list(self):\n \"\"\"\n This method returns a form_list based on the initial form list but\n checks if there is a condition method/value in the condition_list.\n If an entry exists in the condition list, it will call/read the value\n and respect the result. (True means add the form, False means ignore\n the form)\n The form_list is always generated on the fly because condition methods\n could use data from other (maybe previous forms).\n \"\"\"\n form_list = SortedDict()\n for form_key, form_class in six.iteritems(self.form_list):\n # try to fetch the value from condition list, by default, the form\n # gets passed to the new list.\n condition = self.condition_dict.get(form_key, True)\n if callable(condition):\n # call the value if needed, passes the current instance.\n condition = condition(self)\n if condition:\n form_list[form_key] = form_class\n return form_list\n", - "name": "get_form_list", - "docstring": "This method returns a form_list based on the initial form list but\nchecks if there is a condition method/value in the condition_list.\nIf an entry exists in the condition list, it will call/read the value\nand respect the result. (True means add the form, False means ignore\nthe form)\n\nThe form_list is always generated on the fly because condition methods\ncould use data from other (maybe previous forms).", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 332 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 354, - "code": "def get_form_prefix(self, step=None, form=None):\n \"\"\"\n Returns the prefix which will be used when calling the actual form for\n the given step. `step` contains the step-name, `form` the form which\n will be called with the returned prefix.\n If no step is given, the form_prefix will determine the current step\n automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n return str(step)\n", - "name": "get_form_prefix", - "docstring": "Returns the prefix which will be used when calling the actual form for\nthe given step. `step` contains the step-name, `form` the form which\nwill be called with the returned prefix.\n\nIf no step is given, the form_prefix will determine the current step\nautomatically.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, step=None, form=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Obtain the list of dates and items.", + "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", + "kwargs": "self", + "line_number": 339 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 442, - "code": "def get_form_step_data(self, form):\n \"\"\"\n Is used to return the raw form data. You may use this method to\n manipulate the data.\n \"\"\"\n return form.data\n", - "name": "get_form_step_data", - "docstring": "Is used to return the raw form data. You may use this method to\nmanipulate the data.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, ordering=None, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if ordering is not None:\n qs = qs.order_by(ordering)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", + "kwargs": "self, ordering=None, **lookup", + "line_number": 345 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 449, - "code": "def get_form_step_files(self, form):\n \"\"\"\n Is used to return the raw form files. You may use this method to\n manipulate the data.\n \"\"\"\n return form.files\n", - "name": "get_form_step_files", - "docstring": "Is used to return the raw form files. You may use this method to\nmanipulate the data.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", + "kwargs": "self, queryset, date_type=None, ordering=u'ASC'", + "line_number": 380 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 22, - "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", - "name": "get_initial", - "docstring": "Returns the initial data to use for forms on this view.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_date_list_period", + "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", + "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", + "kwargs": "self", + "line_number": 374 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 599, - "code": "@classmethod\ndef get_initkwargs(cls, *args, **kwargs):\n \"\"\"\n We require a url_name to reverse URLs later. Additionally users can\n pass a done_step_name to change the URL name of the \"done\" view.\n \"\"\"\n assert 'url_name' in kwargs, 'URL name is needed to resolve correct wizard URLs'\n extra_kwargs = {\n 'done_step_name': kwargs.pop('done_step_name', 'done'),\n 'url_name': kwargs.pop('url_name'),\n }\n initkwargs = super(NamedUrlWizardView, cls).get_initkwargs(*args, **kwargs)\n initkwargs.update(extra_kwargs)\n assert initkwargs['done_step_name'] not in initkwargs['form_list'], \\\n 'step name \"%s\" is reserved for \"done\" view' % initkwargs['done_step_name']\n return initkwargs\n", - "name": "get_initkwargs", - "docstring": "We require a url_name to reverse URLs later. Additionally users can\npass a done_step_name to change the URL name of the \"done\" view.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "cls, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 586 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 123, - "code": "@classmethod\ndef get_initkwargs(cls, form_list=None, initial_dict=None,\n instance_dict=None, condition_dict=None, *args, **kwargs):\n \"\"\"\n Creates a dict with all needed parameters for the form wizard instances.\n * `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n * `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n * `instance_dict` - contains a dictionary whose values are model\n instances if the step is based on a ``ModelForm`` and querysets if\n the step is based on a ``ModelFormSet``. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n * `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.\n \"\"\"\n kwargs.update({\n 'initial_dict': initial_dict or kwargs.pop('initial_dict',\n getattr(cls, 'initial_dict', None)) or {},\n 'instance_dict': instance_dict or kwargs.pop('instance_dict',\n getattr(cls, 'instance_dict', None)) or {},\n 'condition_dict': condition_dict or kwargs.pop('condition_dict',\n getattr(cls, 'condition_dict', None)) or {}\n })\n form_list = form_list or kwargs.pop('form_list',\n getattr(cls, 'form_list', None)) or []\n computed_form_list = SortedDict()\n assert len(form_list) > 0, 'at least one form is needed'\n # walk through the passed form list\n for i, form in enumerate(form_list):\n if isinstance(form, (list, tuple)):\n # if the element is a tuple, add the tuple to the new created\n # sorted dictionary.\n computed_form_list[six.text_type(form[0])] = form[1]\n else:\n # if not, add the form with a zero based counter as unicode\n computed_form_list[six.text_type(i)] = form\n # walk through the new created list of forms\n for form in six.itervalues(computed_form_list):\n if issubclass(form, formsets.BaseFormSet):\n # if the element is based on BaseFormSet (FormSet/ModelFormSet)\n # we need to override the form variable.\n form = form.form\n # check if any form contains a FileField, if yes, we need a\n # file_storage added to the wizardview (by subclassing).\n for field in six.itervalues(form.base_fields):\n if (isinstance(field, forms.FileField) and\n not hasattr(cls, 'file_storage')):\n raise NoFileStorageConfigured(\n \"You need to define 'file_storage' in your \"\n \"wizard view in order to handle file uploads.\")\n # build the kwargs for the wizardview instances\n kwargs['form_list'] = computed_form_list\n return kwargs\n", - "name": "get_initkwargs", - "docstring": "Creates a dict with all needed parameters for the form wizard instances.\n\n* `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n* `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n* `instance_dict` - contains a dictionary whose values are model\n instances if the step is based on a ``ModelForm`` and querysets if\n the step is based on a ``ModelFormSet``. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n* `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "cls, form_list=None, initial_dict=None, instance_dict=None, condition_dict=None, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", + "kwargs": "self", + "line_number": 572 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 467, - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", "klass": [ - "BaseYearArchiveView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", + "kwargs": "self", + "line_number": 488 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 86, - "code": "def get_month(self):\n \"\"\"\n Return the month for which this view should display data.\n \"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", - "name": "get_month", - "docstring": "Return the month for which this view should display data.", "klass": [ - "MonthMixin", + "BaseTodayArchiveView", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", + "kwargs": "self", + "line_number": 615 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 79, - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", "klass": [ - "MonthMixin", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", + "kwargs": "self", + "line_number": 528 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 172, - "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", - "name": "_get_next_day", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", "klass": [ - "DayMixin", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(ordering='-%s' % date_field, **lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", + "kwargs": "self", + "line_number": 437 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 160, - "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", - "name": "get_next_day", - "docstring": "Get the next valid day.", "klass": [ - "DayMixin", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", + "kwargs": "self", + "line_number": 467 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 113, - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n return date.replace(year=date.year + 1, month=1, day=1)\n else:\n return date.replace(month=date.month + 1, day=1)\n", - "name": "_get_next_month", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", "klass": [ - "MonthMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_allow_future", + "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", + "kwargs": "self", + "line_number": 272 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 101, - "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", - "name": "get_next_month", - "docstring": "Get the next valid month.", "klass": [ - "MonthMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", + "kwargs": "self", + "line_number": 264 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 492, - "code": "def get_next_step(self, step=None):\n \"\"\"\n Returns the next step after the given `step`. If no more steps are\n available, None will be returned. If the `step` argument is None, the\n current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n key = form_list.keyOrder.index(step) + 1\n if len(form_list.keyOrder) > key:\n return form_list.keyOrder[key]\n return None\n", - "name": "get_next_step", - "docstring": "Returns the next step after the given `step`. If no more steps are\navailable, None will be returned. If the `step` argument is None, the\ncurrent step will be determined automatically.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "DateMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", + "kwargs": "self, value", + "line_number": 292 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 228, - "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n", - "name": "_get_next_week", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", "klass": [ - "WeekMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", + "kwargs": "self, date", + "line_number": 305 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 216, - "code": "def get_next_week(self, date):\n \"\"\"\n Get the next valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", - "name": "get_next_week", - "docstring": "Get the next valid week.", "klass": [ - "WeekMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", + "kwargs": "self, date", + "line_number": 180 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 57, - "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date.replace(year=date.year + 1, month=1, day=1)\n", - "name": "_get_next_year", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", "klass": [ - "YearMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_day", + "docstring": "Return the day for which this view should display data.", + "code": "def get_day(self):\n \"\"\"\n Return the day for which this view should display data.\n \"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "kwargs": "self", + "line_number": 145 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 45, - "code": "def get_next_year(self, date):\n \"\"\"\n Get the next valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", - "name": "get_next_year", - "docstring": "Get the next valid year.", "klass": [ - "YearMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", + "kwargs": "self", + "line_number": 138 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 634, - "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = queryset or self.get_queryset()\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", - "name": "get_object", - "docstring": "Get the object this request displays.", "klass": [ - "BaseDateDetailView", + "DayMixin", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, queryset=None" - }, - "model": "cbv.method", - "pk": null + "name": "_get_next_day", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", + "kwargs": "self, date", + "line_number": 172 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 21, - "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg, None)\n slug = self.kwargs.get(self.slug_url_kwarg, None)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n elif slug is not None:\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n else:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except ObjectDoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "name": "get_object", - "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, queryset=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "kwargs": "self, date", + "line_number": 160 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 64, - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, queryset" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "kwargs": "self, date", + "line_number": 166 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 79, - "code": "def get_paginate_orphans(self):\n \"\"\"\n Returns the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", - "name": "get_paginate_orphans", - "docstring": "Returns the maximum number of orphans extend the last page by when\npaginating.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", + "kwargs": "self, date", + "line_number": 124 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 70, - "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_month", + "docstring": "Return the month for which this view should display data.", + "code": "def get_month(self):\n \"\"\"\n Return the month for which this view should display data.\n \"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "kwargs": "self", + "line_number": 86 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 28, - "code": "def get_prefix(self):\n \"\"\"\n Returns the prefix to use for forms on this view\n \"\"\"\n return self.prefix\n", - "name": "get_prefix", - "docstring": "Returns the prefix to use for forms on this view", "klass": [ - "FormMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "kwargs": "self", + "line_number": 79 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 194, - "code": "def get_prefix(self, *args, **kwargs):\n # TODO: Add some kind of unique id to prefix\n return normalize_name(self.__class__.__name__)\n", - "name": "get_prefix", - "docstring": "", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MonthMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "_get_next_month", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n return date.replace(year=date.year + 1, month=1, day=1)\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "kwargs": "self, date", + "line_number": 113 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 166, - "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", - "name": "get_previous_day", - "docstring": "Get the previous valid day.", "klass": [ - "DayMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "kwargs": "self, date", + "line_number": 101 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 107, - "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", - "name": "get_previous_month", - "docstring": "Get the previous valid month.", "klass": [ "MonthMixin", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "kwargs": "self, date", + "line_number": 107 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 222, - "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", - "name": "get_previous_week", - "docstring": "Get the previous valid week.", "klass": [ "WeekMixin", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", + "kwargs": "self, date", + "line_number": 236 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 51, - "code": "def get_previous_year(self, date):\n \"\"\"\n Get the previous valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", - "name": "get_previous_year", - "docstring": "Get the previous valid year.", "klass": [ - "YearMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_get_next_week", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n", + "kwargs": "self, date", + "line_number": 228 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 506, - "code": "def get_prev_step(self, step=None):\n \"\"\"\n Returns the previous step before the given `step`. If there are no\n steps available, None will be returned. If the `step` argument is\n None, the current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n key = form_list.keyOrder.index(step) - 1\n if key >= 0:\n return form_list.keyOrder[key]\n return None\n", - "name": "get_prev_step", - "docstring": "Returns the previous step before the given `step`. If there are no\nsteps available, None will be returned. If the `step` argument is\nNone, the current step will be determined automatically.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_week", + "docstring": "Get the next valid week.", + "code": "def get_next_week(self, date):\n \"\"\"\n Get the next valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "kwargs": "self, date", + "line_number": 216 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 58, - "code": "def get_queryset(self):\n \"\"\"\n Get the queryset to look an object up against. May not be called if\n `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\"%(cls)s is missing a queryset. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n })\n return self.queryset._clone()\n", - "name": "get_queryset", - "docstring": "Get the queryset to look an object up against. May not be called if\n`get_object` is overridden.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WeekMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "kwargs": "self, date", + "line_number": 222 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 23, - "code": "def get_queryset(self):\n \"\"\"\n Get the list of items for this view. This must be an iterable, and may\n be a queryset (in which qs-specific behavior will be enabled).\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if hasattr(queryset, '_clone'):\n queryset = queryset._clone()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\"'%s' must define 'queryset' or 'model'\"\n % self.__class__.__name__)\n return queryset\n", - "name": "get_queryset", - "docstring": "Get the list of items for this view. This must be an iterable, and may\nbe a queryset (in which qs-specific behavior will be enabled).", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_week", + "docstring": "Return the week for which this view should display data", + "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", + "kwargs": "self", + "line_number": 201 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 167, - "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n try:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n except NoReverseMatch:\n return None\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", "klass": [ - "RedirectView", - "django.views.generic.base", + "WeekMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", + "kwargs": "self, date", + "line_number": 242 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 74, - "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WeekMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "kwargs": "self", + "line_number": 194 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 520, - "code": "def get_step_index(self, step=None):\n \"\"\"\n Returns the index for the given `step` name. If no step is given,\n the current step will be used to get the index.\n \"\"\"\n if step is None:\n step = self.steps.current\n return self.get_form_list().keyOrder.index(step)\n", - "name": "get_step_index", - "docstring": "Returns the index for the given `step` name. If no step is given,\nthe current step will be used to get the index.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", + "kwargs": "self, date", + "line_number": 65 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 617, - "code": "def get_step_url(self, step):\n return reverse(self.url_name, kwargs={'step': step})\n", - "name": "get_step_url", - "docstring": "", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "_get_next_year", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date.replace(year=date.year + 1, month=1, day=1)\n", + "kwargs": "self, date", + "line_number": 57 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 128, - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n url = self.success_url % self.object.__dict__\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", - "name": "get_success_url", - "docstring": "Returns the supplied URL.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_year", + "docstring": "Get the next valid year.", + "code": "def get_next_year(self, date):\n \"\"\"\n Get the next valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", + "kwargs": "self, date", + "line_number": 45 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 259, - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url % self.object.__dict__\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", - "name": "get_success_url", - "docstring": "", "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_year", + "docstring": "Get the previous valid year.", + "code": "def get_previous_year(self, date):\n \"\"\"\n Get the previous valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", + "kwargs": "self, date", + "line_number": 51 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 62, - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", - "name": "get_success_url", - "docstring": "Returns the supplied success URL.", - "klass": [ - "FormMixin", - "django.views.generic.edit", + "klass": [ + "YearMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "kwargs": "self", + "line_number": 30 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 162, - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", + "kwargs": "self", + "line_number": 23 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 135, - "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "name": "get_template_names", - "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 109 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 119, - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.object._meta.app_label,\n self.object._meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 91 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 201, - "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", - "name": "get_week", - "docstring": "Return the week for which this view should display data", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 80 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 242, - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_object", + "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg, None)\n slug = self.kwargs.get(self.slug_url_kwarg, None)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n elif slug is not None:\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n else:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except ObjectDoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 21 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 194, - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_queryset", + "docstring": "Get the queryset to look an object up against. May not be called if\n`get_object` is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Get the queryset to look an object up against. May not be called if\n `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\"%(cls)s is missing a queryset. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n })\n return self.queryset._clone()\n", + "kwargs": "self", + "line_number": 58 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 30, - "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", - "name": "get_year", - "docstring": "Return the year for which this view should display data.", "klass": [ - "YearMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", + "kwargs": "self", + "line_number": 74 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 23, - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", "klass": [ - "YearMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.object._meta.app_label,\n self.object._meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", + "kwargs": "self", + "line_number": 119 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 203, - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "head", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 199 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 89, - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning('Method Not Allowed (%s): %s', request.method, request.path,\n extra={\n 'status_code': 405,\n 'request': self.request\n }\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", - "name": "http_method_not_allowed", - "docstring": "", "klass": [ - "View", - "django.views.generic.base", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 203 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 33, - "code": "def __init__(self, wizard):\n self._wizard = wizard\n", - "name": "__init__", - "docstring": "", "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, wizard" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 222 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 36, - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", "klass": [ - "View", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 226 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 39, - "code": "def __len__(self):\n return self.count\n", - "name": "__len__", - "docstring": "", "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "delete", + "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 245 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 292, - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, value" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url % self.object.__dict__\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", + "kwargs": "self", + "line_number": 259 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 305, - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 256 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 98, - "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", - "name": "options", - "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", "klass": [ - "View", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "form_invalid", + "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", + "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 80 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 209, - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "options", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 74 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 39, - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, queryset, page_size" - }, - "model": "cbv.method", - "pk": null + "name": "get_form", + "docstring": "Returns an instance of the form to be used in this view.", + "code": "def get_form(self, form_class):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class", + "line_number": 40 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 218, - "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "patch", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_class", + "docstring": "Returns the form class to use in this view", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", + "kwargs": "self", + "line_number": 34 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 256, - "code": "def post(self, *args, **kwargs):\n \"\"\"\n This method handles POST requests.\n The wizard will render either the current step (if form validation\n wasn't successful), the next step (if the current step was stored\n successful) or the done view (if no more steps are available)\n \"\"\"\n # Look for a wizard_goto_step element in the posted data which\n # contains a valid step name. If one was found, render the requested\n # form. (This makes stepping back a lot easier).\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n return self.render_goto_step(wizard_goto_step)\n # Check if form was refreshed\n management_form = ManagementForm(self.request.POST, prefix=self.prefix)\n if not management_form.is_valid():\n raise ValidationError(\n _('ManagementForm data is missing or has been tampered.'),\n code='missing_management_form',\n )\n form_current_step = management_form.cleaned_data['current_step']\n if (form_current_step != self.steps.current and\n self.storage.current_step is not None):\n # form refreshed, change current step\n self.storage.current_step = form_current_step\n # get the form for the current step\n form = self.get_form(data=self.request.POST, files=self.request.FILES)\n # and try to validate\n if form.is_valid():\n # if the form is valid, store the cleaned data and files.\n self.storage.set_step_data(self.steps.current, self.process_step(form))\n self.storage.set_step_files(self.steps.current, self.process_step_files(form))\n # check if the current step is the last step\n if self.steps.current == self.steps.last:\n # no more steps, render done view\n return self.render_done(form, **kwargs)\n else:\n # proceed to the next step\n return self.render_next_step(form)\n return self.render(form)\n", - "name": "post", - "docstring": "This method handles POST requests.\n\nThe wizard will render either the current step (if form validation\nwasn't successful), the next step (if the current step was stored\nsuccessful) or the done view (if no more steps are available)", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "FormMixin", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "kwargs": "self", + "line_number": 46 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 206, - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_initial", + "docstring": "Returns the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", + "kwargs": "self", + "line_number": 22 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 256, - "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "DeletionMixin", + "FormMixin", "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_prefix", + "docstring": "Returns the prefix to use for forms on this view", + "code": "def get_prefix(self):\n \"\"\"\n Returns the prefix to use for forms on this view\n \"\"\"\n return self.prefix\n", + "kwargs": "self", + "line_number": 28 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 665, - "code": "def post(self, *args, **kwargs):\n \"\"\"\n Do a redirect if user presses the prev. step button. The rest of this\n is super'd from WizardView.\n \"\"\"\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n return self.render_goto_step(wizard_goto_step)\n return super(NamedUrlWizardView, self).post(*args, **kwargs)\n", - "name": "post", - "docstring": "Do a redirect if user presses the prev. step button. The rest of this\nis super'd from WizardView.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "FormMixin", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "Returns the supplied success URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", + "kwargs": "self", + "line_number": 62 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 226, - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "BaseUpdateView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", + "kwargs": "self, form", + "line_number": 143 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 203, - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "BaseCreateView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_class", + "docstring": "Returns the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n warnings.warn(\"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is deprecated.\" % self.__class__.__name__,\n PendingDeprecationWarning)\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "kwargs": "self", + "line_number": 94 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 163, - "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", "klass": [ - "ProcessFormView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 120 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 419, - "code": "def process_step(self, form):\n \"\"\"\n This method is used to postprocess the form data. By default, it\n returns the raw `form.data` dictionary.\n \"\"\"\n return self.get_form_step_data(form)\n", - "name": "process_step", - "docstring": "This method is used to postprocess the form data. By default, it\nreturns the raw `form.data` dictionary.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "Returns the supplied URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n url = self.success_url % self.object.__dict__\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 128 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 426, - "code": "def process_step_files(self, form):\n \"\"\"\n This method is used to postprocess the form files. By default, it\n returns the raw `form.files` dictionary.\n \"\"\"\n return self.get_form_step_files(form)\n", - "name": "process_step_files", - "docstring": "This method is used to postprocess the form files. By default, it\nreturns the raw `form.files` dictionary.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 155 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 215, - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "put", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 163 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 177, - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "name": "put", - "docstring": "", "klass": [ "ProcessFormView", "django.views.generic.edit", "Django", "1.6" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "put", + "docstring": "", + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 177 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 561, - "code": "def render(self, form=None, **kwargs):\n \"\"\"\n Returns a ``HttpResponse`` containing all needed context data.\n \"\"\"\n form = form or self.get_form()\n context = self.get_context_data(form=form, **kwargs)\n return self.render_to_response(context)\n", - "name": "render", - "docstring": "Returns a ``HttpResponse`` containing all needed context data.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseListView", + "django.views.generic.list", "Django", "1.6" ], - "kwargs": "self, form=None, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if (self.get_paginate_by(self.object_list) is not None\n and hasattr(self.object_list, 'exists')):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data()\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 136 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 709, - "code": "def render_done(self, form, **kwargs):\n \"\"\"\n When rendering the done view, we have to redirect first (if the URL\n name doesn't fit).\n \"\"\"\n if kwargs.get('step', None) != self.done_step_name:\n return redirect(self.get_step_url(self.done_step_name))\n return super(NamedUrlWizardView, self).render_done(form, **kwargs)\n", - "name": "render_done", - "docstring": "When rendering the done view, we have to redirect first (if the URL\nname doesn't fit).", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_allow_empty", + "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 86 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 330, - "code": "def render_done(self, form, **kwargs):\n \"\"\"\n This method gets called when all forms passed. The method should also\n re-validate all steps to prevent manipulation. If any form don't\n validate, `render_revalidation_failure` should get called.\n If everything is fine call `done`.\n \"\"\"\n final_form_list = []\n # walk through the form list and try to validate the data again.\n for form_key in self.get_form_list():\n form_obj = self.get_form(step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key))\n if not form_obj.is_valid():\n return self.render_revalidation_failure(form_key, form_obj, **kwargs)\n final_form_list.append(form_obj)\n # render the done view and reset the wizard before returning the\n # response. This is needed to prevent from rendering done with the\n # same data twice.\n done_response = self.done(final_form_list, **kwargs)\n self.storage.reset()\n return done_response\n", - "name": "render_done", - "docstring": "This method gets called when all forms passed. The method should also\nre-validate all steps to prevent manipulation. If any form don't\nvalidate, `render_revalidation_failure` should get called.\nIf everything is fine call `done`.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list', self.object_list)\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 104 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 319, - "code": "def render_goto_step(self, goto_step, **kwargs):\n \"\"\"\n This method gets called when the current step has to be changed.\n `goto_step` contains the requested step to go to.\n \"\"\"\n self.storage.current_step = goto_step\n form = self.get_form(\n data=self.storage.get_step_data(self.steps.current),\n files=self.storage.get_step_files(self.steps.current))\n return self.render(form)\n", - "name": "render_goto_step", - "docstring": "This method gets called when the current step has to be changed.\n`goto_step` contains the requested step to go to.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], - "kwargs": "self, goto_step, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 93 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 693, - "code": "def render_goto_step(self, goto_step, **kwargs):\n \"\"\"\n This method gets called when the current step has to be changed.\n `goto_step` contains the requested step to go to.\n \"\"\"\n self.storage.current_step = goto_step\n return redirect(self.get_step_url(goto_step))\n", - "name": "render_goto_step", - "docstring": "This method gets called when the current step has to be changed.\n`goto_step` contains the requested step to go to.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], - "kwargs": "self, goto_step, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 64 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 303, - "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n This method gets called when the next step/form should be rendered.\n `form` contains the last/current form.\n \"\"\"\n # get the form instance based on the data from the storage backend\n # (if available).\n next_step = self.steps.next\n new_form = self.get_form(next_step,\n data=self.storage.get_step_data(next_step),\n files=self.storage.get_step_files(next_step))\n # change the stored current step\n self.storage.current_step = next_step\n return self.render(new_form, **kwargs)\n", - "name": "render_next_step", - "docstring": "This method gets called when the next step/form should be rendered.\n`form` contains the last/current form.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_paginate_orphans", + "docstring": "Returns the maximum number of orphans extend the last page by when\npaginating.", + "code": "def get_paginate_orphans(self):\n \"\"\"\n Returns the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "kwargs": "self", + "line_number": 79 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 684, - "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n When using the NamedUrlWizardView, we have to redirect to update the\n browser's URL to match the shown step.\n \"\"\"\n next_step = self.get_next_step()\n self.storage.current_step = next_step\n return redirect(self.get_step_url(next_step))\n", - "name": "render_next_step", - "docstring": "When using the NamedUrlWizardView, we have to redirect to update the\nbrowser's URL to match the shown step.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", + "line_number": 70 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 701, - "code": "def render_revalidation_failure(self, failed_step, form, **kwargs):\n \"\"\"\n When a step fails, we have to redirect the user to the first failing\n step.\n \"\"\"\n self.storage.current_step = failed_step\n return redirect(self.get_step_url(failed_step))\n", - "name": "render_revalidation_failure", - "docstring": "When a step fails, we have to redirect the user to the first failing\nstep.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], - "kwargs": "self, failed_step, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_queryset", + "docstring": "Get the list of items for this view. This must be an iterable, and may\nbe a queryset (in which qs-specific behavior will be enabled).", + "code": "def get_queryset(self):\n \"\"\"\n Get the list of items for this view. This must be an iterable, and may\n be a queryset (in which qs-specific behavior will be enabled).\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if hasattr(queryset, '_clone'):\n queryset = queryset._clone()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\"'%s' must define 'queryset' or 'model'\"\n % self.__class__.__name__)\n return queryset\n", + "kwargs": "self", + "line_number": 23 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 433, - "code": "def render_revalidation_failure(self, step, form, **kwargs):\n \"\"\"\n Gets called when a form doesn't validate when rendering the done\n view. By default, it changes the current step to failing forms step\n and renders the form.\n \"\"\"\n self.storage.current_step = step\n return self.render(form, **kwargs)\n", - "name": "render_revalidation_failure", - "docstring": "Gets called when a form doesn't validate when rendering the done\nview. By default, it changes the current step to failing forms step\nand renders the form.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], - "kwargs": "self, step, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 39 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 119, - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request = self.request,\n template = self.get_template_names(),\n context = context,\n **response_kwargs\n )\n", - "name": "render_to_response", - "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.6" ], - "kwargs": "self, context, **response_kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", + "kwargs": "self", + "line_number": 162 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "line_number": 110, - "code": "def __repr__(self):\n return '<%s: forms: %s>' % (self.__class__.__name__, self.form_list)\n", - "name": "__repr__", - "docstring": "", - "klass": [ + "parent": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null -}, -{ - "fields": { - "line_number": 42, - "code": "def __repr__(self):\n return '' % (self._wizard, self.all)\n", - "name": "__repr__", - "docstring": "", - "klass": [ - "StepsHelper", + "child": [ + "CookieWizardView", "django.contrib.formtools.wizard.views", "Django", "1.6" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "NamedUrlCookieWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], "child": [ - "TemplateView", - "django.views.generic.base", + "NamedUrlSessionWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ContextMixin", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SessionWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ContextMixin", + "TemplateView", "django.views.generic.base", "Django", "1.6" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ContextMixin", + "View", "django.views.generic.base", "Django", "1.6" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.6" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.6" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.6" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.6" ], "child": [ - "BaseDateDetailView", + "ArchiveIndexView", "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "BaseDayArchiveView", + "BaseArchiveIndexView", "django.views.generic.dates", "Django", "1.6" ], "child": [ - "BaseTodayArchiveView", + "ArchiveIndexView", "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ "BaseDateListView", "django.views.generic.dates", @@ -4966,603 +4925,584 @@ "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null -}, -{ - "fields": { - "order": 0, - "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", - "Django", - "1.6" ], - "child": [ - "CreateView", - "django.views.generic.edit", - "Django", - "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "DetailView", - "django.views.generic.detail", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DateMixin", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "DateDetailView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 3 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectMixin", + "BaseDetailView", "django.views.generic.detail", "Django", "1.6" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 4 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "FormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.6" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "FormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "MonthArchiveView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 3 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "ArchiveIndexView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "YearArchiveView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "WeekArchiveView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "DayArchiveView", + "BaseTodayArchiveView", "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "TodayArchiveView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "BaseDateListView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "SessionWizardView", - "django.contrib.formtools.wizard.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "CookieWizardView", - "django.contrib.formtools.wizard.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.6" ], "child": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "DateDetailView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "NamedUrlCookieWizardView", - "django.contrib.formtools.wizard.views", + "DateDetailView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.6" ], "child": [ - "NamedUrlSessionWizardView", - "django.contrib.formtools.wizard.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "View", - "django.views.generic.base", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.6" ], "child": [ - "RedirectView", - "django.views.generic.base", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateView", - "django.views.generic.base", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.6" ], "child": [ - "FormView", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.6" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.6" ], "child": [ - "YearArchiveView", + "WeekArchiveView", "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ "BaseWeekArchiveView", "django.views.generic.dates", @@ -5574,655 +5514,654 @@ "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.6" ], "child": [ - "TodayArchiveView", + "YearArchiveView", "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseMonthArchiveView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.6" ], "child": [ - "MonthArchiveView", + "YearArchiveView", "django.views.generic.dates", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.6" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.6" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.6" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.6" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "DetailView", + "django.views.generic.detail", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseUpdateView", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "1.6" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseFormView", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.6" ], "child": [ - "FormView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ContextMixin", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.6" ], "child": [ - "TemplateView", - "django.views.generic.base", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDeleteView", + "ProcessFormView", "django.views.generic.edit", "Django", "1.6" ], "child": [ - "DeleteView", + "BaseCreateView", "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseCreateView", + "DeletionMixin", "django.views.generic.edit", "Django", "1.6" ], "child": [ - "CreateView", + "BaseDeleteView", "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "SingleObjectMixin", + "BaseDetailView", "django.views.generic.detail", "Django", "1.6" ], "child": [ - "ModelFormMixin", + "BaseDeleteView", "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseListView", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "1.6" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseFormView", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.6" ], "child": [ - "BaseDeleteView", + "BaseFormView", "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.6" ], "child": [ - "BaseCreateView", + "BaseUpdateView", "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "View", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.6" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDetailView", + "SingleObjectTemplateResponseMixin", "django.views.generic.detail", "Django", "1.6" ], "child": [ - "DetailView", - "django.views.generic.detail", + "CreateView", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "WeekMixin", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.6" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.6" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.6" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.6" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.6" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "View", - "django.views.generic.base", + "BaseFormView", + "django.views.generic.edit", "Django", "1.6" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "FormView", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.6" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "DateMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.6" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.6" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.6" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "View", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.6" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "DayMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.6" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.6" ], "child": [ - "TemplateView", - "django.views.generic.base", + "ListView", + "django.views.generic.list", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 3, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.6" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 3, "parent": [ - "DateMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.6" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 4, "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.6" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.6" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } } ] diff --git a/cbv/fixtures/1.7.json b/cbv/fixtures/1.7.json index 7234ec50..8b702b2d 100644 --- a/cbv/fixtures/1.7.json +++ b/cbv/fixtures/1.7.json @@ -1,5264 +1,5242 @@ [ { + "model": "cbv.projectversion", "fields": { "project": [ "Django" ], "version_number": "1.7", "sortable_version_number": "0107" - }, - "model": "cbv.projectversion", - "pk": null + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.7" ], + "name": "django.contrib.formtools.wizard.views", "docstring": "", - "name": "django.views.generic", - "filename": "/django/views/generic/__init__.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/contrib/formtools/wizard/views.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.7" ], + "name": "django.views.generic", "docstring": "", - "name": "django.views.generic.base", - "filename": "/django/views/generic/base.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/__init__.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.7" ], + "name": "django.views.generic.base", "docstring": "", - "name": "django.views.generic.dates", - "filename": "/django/views/generic/dates.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/base.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.7" ], + "name": "django.views.generic.dates", "docstring": "", - "name": "django.views.generic.detail", - "filename": "/django/views/generic/detail.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/dates.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.7" ], + "name": "django.views.generic.detail", "docstring": "", - "name": "django.views.generic.edit", - "filename": "/django/views/generic/edit.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/detail.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.7" ], + "name": "django.views.generic.edit", "docstring": "", - "name": "django.views.generic.list", - "filename": "/django/views/generic/list.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/edit.py" + } }, { + "model": "cbv.module", "fields": { "project_version": [ "Django", "1.7" ], + "name": "django.views.generic.list", "docstring": "", - "name": "django.contrib.formtools.wizard.views", - "filename": "/django/contrib/formtools/wizard/views.py" - }, - "model": "cbv.module", - "pk": null + "filename": "/django/views/generic/list.py" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 589, - "name": "CookieWizardView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.CookieWizardView", - "docstring": "A WizardView with pre-configured CookieStorage backend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "CookieWizardView", + "docstring": "A WizardView with pre-configured CookieStorage backend.", + "line_number": 589, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.CookieWizardView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 730, - "name": "NamedUrlCookieWizardView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.NamedUrlCookieWizardView", - "docstring": "A NamedUrlFormWizard with pre-configured CookieStorageBackend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "NamedUrlCookieWizardView", + "docstring": "A NamedUrlFormWizard with pre-configured CookieStorageBackend.", + "line_number": 730, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.NamedUrlCookieWizardView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 723, - "name": "NamedUrlSessionWizardView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.NamedUrlSessionWizardView", - "docstring": "A NamedUrlWizardView with pre-configured SessionStorage backend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "NamedUrlSessionWizardView", + "docstring": "A NamedUrlWizardView with pre-configured SessionStorage backend.", + "line_number": 723, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.NamedUrlSessionWizardView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 596, - "name": "NamedUrlWizardView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.NamedUrlWizardView", - "docstring": "A WizardView with URL named steps support.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "NamedUrlWizardView", + "docstring": "A WizardView with URL named steps support.", + "line_number": 596, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.NamedUrlWizardView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 582, - "name": "SessionWizardView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.SessionWizardView", - "docstring": "A WizardView with pre-configured SessionStorage backend.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "SessionWizardView", + "docstring": "A WizardView with pre-configured SessionStorage backend.", + "line_number": 582, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.SessionWizardView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 32, - "name": "StepsHelper", - "docs_url": "", - "docstring": "", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "StepsHelper", + "docstring": "", + "line_number": 32, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 98, - "name": "WizardView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.WizardView", - "docstring": "The WizardView is used to create multi-page forms and handles all the\nstorage and validation stuff. The wizard is based on Django's generic\nclass based views.", "module": [ "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "import_path": "django.contrib.formtools.wizard.views" - }, - "model": "cbv.klass", - "pk": null + "name": "WizardView", + "docstring": "The WizardView is used to create multi-page forms and handles all the\nstorage and validation stuff. The wizard is based on Django's generic\nclass based views.", + "line_number": 98, + "import_path": "django.contrib.formtools.wizard.views", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/contrib/formtools/form-wizard/#django.contrib.formtools.wizard.views.WizardView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 18, - "name": "GenericViewError", - "docs_url": "", - "docstring": "A problem in a generic view.", "module": [ "django.views.generic", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "GenericViewError", + "docstring": "A problem in a generic view.", + "line_number": 18, + "import_path": "django.views.generic", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 16, - "name": "ContextMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin", - "docstring": "A default context mixin that passes the keyword arguments received by\nget_context_data as the template context.", "module": [ "django.views.generic.base", "Django", "1.7" ], - "import_path": "django.views.generic.base" - }, - "model": "cbv.klass", - "pk": null + "name": "ContextMixin", + "docstring": "A default context mixin that passes the keyword arguments received by\nget_context_data as the template context.", + "line_number": 16, + "import_path": "django.views.generic.base", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 158, - "name": "RedirectView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/base/#django.views.generic.base.RedirectView", - "docstring": "A view that provides a redirect on any GET request.", "module": [ "django.views.generic.base", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "RedirectView", + "docstring": "A view that provides a redirect on any GET request.", + "line_number": 158, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/base/#django.views.generic.base.RedirectView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 111, - "name": "TemplateResponseMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin", - "docstring": "A mixin that can be used to render a template.", "module": [ "django.views.generic.base", "Django", "1.7" ], - "import_path": "django.views.generic.base" - }, - "model": "cbv.klass", - "pk": null + "name": "TemplateResponseMixin", + "docstring": "A mixin that can be used to render a template.", + "line_number": 111, + "import_path": "django.views.generic.base", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 148, - "name": "TemplateView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/base/#django.views.generic.base.TemplateView", - "docstring": "A view that renders a template. This view will also pass into the context\nany keyword arguments passed by the url conf.", "module": [ "django.views.generic.base", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "TemplateView", + "docstring": "A view that renders a template. This view will also pass into the context\nany keyword arguments passed by the url conf.", + "line_number": 148, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/base/#django.views.generic.base.TemplateView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 28, - "name": "View", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/base/#django.views.generic.base.View", - "docstring": "Intentionally simple parent class for all views. Only implements\ndispatch-by-method and simple sanity checking.", "module": [ "django.views.generic.base", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "View", + "docstring": "Intentionally simple parent class for all views. Only implements\ndispatch-by-method and simple sanity checking.", + "line_number": 28, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/base/#django.views.generic.base.View" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 424, - "name": "ArchiveIndexView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.ArchiveIndexView", - "docstring": "Top-level archive of date-based items.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "ArchiveIndexView", + "docstring": "Top-level archive of date-based items.", + "line_number": 424, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.ArchiveIndexView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 403, - "name": "BaseArchiveIndexView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseArchiveIndexView", - "docstring": "Base class for archives of date-based items.\n\nRequires a response mixin.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseArchiveIndexView", + "docstring": "Base class for archives of date-based items.\n\nRequires a response mixin.", + "line_number": 403, + "import_path": "django.views.generic.dates", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseArchiveIndexView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 630, - "name": "BaseDateDetailView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseDateDetailView", - "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDateDetailView", + "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", + "line_number": 630, + "import_path": "django.views.generic.dates", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseDateDetailView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 326, - "name": "BaseDateListView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView", - "docstring": "Abstract base class for date-based views displaying a list of objects.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDateListView", + "docstring": "Abstract base class for date-based views displaying a list of objects.", + "line_number": 326, + "import_path": "django.views.generic.dates", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 569, - "name": "BaseDayArchiveView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseDayArchiveView", - "docstring": "List of objects published on a given day.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDayArchiveView", + "docstring": "List of objects published on a given day.", + "line_number": 569, + "import_path": "django.views.generic.dates", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseDayArchiveView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 483, - "name": "BaseMonthArchiveView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseMonthArchiveView", - "docstring": "List of objects published in a given month.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseMonthArchiveView", + "docstring": "List of objects published in a given month.", + "line_number": 483, + "import_path": "django.views.generic.dates", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseMonthArchiveView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 611, - "name": "BaseTodayArchiveView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseTodayArchiveView", - "docstring": "List of objects published today.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseTodayArchiveView", + "docstring": "List of objects published today.", + "line_number": 611, + "import_path": "django.views.generic.dates", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseTodayArchiveView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 524, - "name": "BaseWeekArchiveView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseWeekArchiveView", - "docstring": "List of objects published in a given week.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseWeekArchiveView", + "docstring": "List of objects published in a given week.", + "line_number": 524, + "import_path": "django.views.generic.dates", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseWeekArchiveView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 431, - "name": "BaseYearArchiveView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseYearArchiveView", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseYearArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 431, + "import_path": "django.views.generic.dates", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.BaseYearArchiveView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 664, - "name": "DateDetailView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.DateDetailView", - "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DateDetailView", + "docstring": "Detail view of a single object on a single date; this differs from the\nstandard DetailView by accepting a year/month/day in the URL.", + "line_number": 664, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.DateDetailView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 258, - "name": "DateMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin", - "docstring": "Mixin class for views manipulating date-based data.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "DateMixin", + "docstring": "Mixin class for views manipulating date-based data.", + "line_number": 258, + "import_path": "django.views.generic.dates", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 604, - "name": "DayArchiveView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.DayArchiveView", - "docstring": "List of objects published on a given day.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DayArchiveView", + "docstring": "List of objects published on a given day.", + "line_number": 604, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.DayArchiveView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 132, - "name": "DayMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DayMixin", - "docstring": "Mixin for views manipulating day-based data.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "DayMixin", + "docstring": "Mixin for views manipulating day-based data.", + "line_number": 132, + "import_path": "django.views.generic.dates", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DayMixin" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 517, - "name": "MonthArchiveView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.MonthArchiveView", - "docstring": "List of objects published in a given month.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "MonthArchiveView", + "docstring": "List of objects published in a given month.", + "line_number": 517, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.MonthArchiveView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 73, - "name": "MonthMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin", - "docstring": "Mixin for views manipulating month-based data.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "MonthMixin", + "docstring": "Mixin for views manipulating month-based data.", + "line_number": 73, + "import_path": "django.views.generic.dates", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 623, - "name": "TodayArchiveView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.TodayArchiveView", - "docstring": "List of objects published today.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "TodayArchiveView", + "docstring": "List of objects published today.", + "line_number": 623, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.TodayArchiveView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 562, - "name": "WeekArchiveView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.WeekArchiveView", - "docstring": "List of objects published in a given week.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "WeekArchiveView", + "docstring": "List of objects published in a given week.", + "line_number": 562, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.WeekArchiveView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 188, - "name": "WeekMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-date-based/#django.views.generic.dates.WeekMixin", - "docstring": "Mixin for views manipulating week-based data.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "WeekMixin", + "docstring": "Mixin for views manipulating week-based data.", + "line_number": 188, + "import_path": "django.views.generic.dates", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-date-based/#django.views.generic.dates.WeekMixin" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 476, - "name": "YearArchiveView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.YearArchiveView", - "docstring": "List of objects published in a given year.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "YearArchiveView", + "docstring": "List of objects published in a given year.", + "line_number": 476, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-date-based/#django.views.generic.dates.YearArchiveView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 17, - "name": "YearMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin", - "docstring": "Mixin for views manipulating year-based data.", "module": [ "django.views.generic.dates", "Django", "1.7" ], - "import_path": "django.views.generic.dates" - }, - "model": "cbv.klass", - "pk": null + "name": "YearMixin", + "docstring": "Mixin for views manipulating year-based data.", + "line_number": 17, + "import_path": "django.views.generic.dates", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 109, - "name": "BaseDetailView", - "docs_url": "", - "docstring": "A base view for displaying a single object", "module": [ "django.views.generic.detail", "Django", "1.7" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDetailView", + "docstring": "A base view for displaying a single object", + "line_number": 109, + "import_path": "django.views.generic.detail", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 171, - "name": "DetailView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-display/#django.views.generic.detail.DetailView", - "docstring": "Render a \"detail\" view of an object.\n\nBy default this is a model instance looked up from `self.queryset`, but the\nview will support display of *any* object by overriding `self.get_object()`.", "module": [ "django.views.generic.detail", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DetailView", + "docstring": "Render a \"detail\" view of an object.\n\nBy default this is a model instance looked up from `self.queryset`, but the\nview will support display of *any* object by overriding `self.get_object()`.", + "line_number": 171, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-display/#django.views.generic.detail.DetailView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 10, - "name": "SingleObjectMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin", - "docstring": "Provides the ability to retrieve a single object for further manipulation.", "module": [ "django.views.generic.detail", "Django", "1.7" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "SingleObjectMixin", + "docstring": "Provides the ability to retrieve a single object for further manipulation.", + "line_number": 10, + "import_path": "django.views.generic.detail", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 119, - "name": "SingleObjectTemplateResponseMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectTemplateResponseMixin", - "docstring": "", "module": [ "django.views.generic.detail", "Django", "1.7" ], - "import_path": "django.views.generic.detail" - }, - "model": "cbv.klass", - "pk": null + "name": "SingleObjectTemplateResponseMixin", + "docstring": "", + "line_number": 119, + "import_path": "django.views.generic.detail", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectTemplateResponseMixin" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 195, - "name": "BaseCreateView", - "docs_url": "", - "docstring": "Base view for creating an new object instance.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.7" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseCreateView", + "docstring": "Base view for creating an new object instance.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 195, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 269, - "name": "BaseDeleteView", - "docs_url": "", - "docstring": "Base view for deleting an object.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.7" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseDeleteView", + "docstring": "Base view for deleting an object.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 269, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 183, - "name": "BaseFormView", - "docs_url": "", - "docstring": "A base view for displaying a form", "module": [ "django.views.generic.edit", "Django", "1.7" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseFormView", + "docstring": "A base view for displaying a form", + "line_number": 183, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 218, - "name": "BaseUpdateView", - "docs_url": "", - "docstring": "Base view for updating an existing object.\n\nUsing this base class requires subclassing to provide a response mixin.", "module": [ "django.views.generic.edit", "Django", "1.7" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseUpdateView", + "docstring": "Base view for updating an existing object.\n\nUsing this base class requires subclassing to provide a response mixin.", + "line_number": 218, + "import_path": "django.views.generic.edit", + "docs_url": "" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 210, - "name": "CreateView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-editing/#django.views.generic.edit.CreateView", - "docstring": "View for creating a new object instance,\nwith a response rendered by template.", "module": [ "django.views.generic.edit", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "CreateView", + "docstring": "View for creating a new object instance,\nwith a response rendered by template.", + "line_number": 210, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-editing/#django.views.generic.edit.CreateView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 277, - "name": "DeleteView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-editing/#django.views.generic.edit.DeleteView", - "docstring": "View for deleting an object retrieved with `self.get_object()`,\nwith a response rendered by template.", "module": [ "django.views.generic.edit", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "DeleteView", + "docstring": "View for deleting an object retrieved with `self.get_object()`,\nwith a response rendered by template.", + "line_number": 277, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-editing/#django.views.generic.edit.DeleteView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 241, - "name": "DeletionMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-editing/#django.views.generic.edit.DeletionMixin", - "docstring": "A mixin providing the ability to delete objects", "module": [ "django.views.generic.edit", "Django", "1.7" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "DeletionMixin", + "docstring": "A mixin providing the ability to delete objects", + "line_number": 241, + "import_path": "django.views.generic.edit", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-editing/#django.views.generic.edit.DeletionMixin" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 13, - "name": "FormMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-editing/#django.views.generic.edit.FormMixin", - "docstring": "A mixin that provides a way to show and handle a form in a request.", "module": [ "django.views.generic.edit", "Django", "1.7" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "FormMixin", + "docstring": "A mixin that provides a way to show and handle a form in a request.", + "line_number": 13, + "import_path": "django.views.generic.edit", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-editing/#django.views.generic.edit.FormMixin" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 189, - "name": "FormView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-editing/#django.views.generic.edit.FormView", - "docstring": "A view for displaying a form, and rendering a template response.", "module": [ "django.views.generic.edit", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "FormView", + "docstring": "A view for displaying a form, and rendering a template response.", + "line_number": 189, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-editing/#django.views.generic.edit.FormView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 89, - "name": "ModelFormMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-editing/#django.views.generic.edit.ModelFormMixin", - "docstring": "A mixin that provides a way to show and handle a modelform in a request.", "module": [ "django.views.generic.edit", "Django", "1.7" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "ModelFormMixin", + "docstring": "A mixin that provides a way to show and handle a modelform in a request.", + "line_number": 89, + "import_path": "django.views.generic.edit", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-editing/#django.views.generic.edit.ModelFormMixin" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 153, - "name": "ProcessFormView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-editing/#django.views.generic.edit.ProcessFormView", - "docstring": "A mixin that renders a form on GET and processes it on POST.", "module": [ "django.views.generic.edit", "Django", "1.7" ], - "import_path": "django.views.generic.edit" - }, - "model": "cbv.klass", - "pk": null + "name": "ProcessFormView", + "docstring": "A mixin that renders a form on GET and processes it on POST.", + "line_number": 153, + "import_path": "django.views.generic.edit", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-editing/#django.views.generic.edit.ProcessFormView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 233, - "name": "UpdateView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-editing/#django.views.generic.edit.UpdateView", - "docstring": "View for updating an object,\nwith a response rendered by template.", "module": [ "django.views.generic.edit", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "UpdateView", + "docstring": "View for updating an object,\nwith a response rendered by template.", + "line_number": 233, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-editing/#django.views.generic.edit.UpdateView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 140, - "name": "BaseListView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-display/#django.views.generic.list.BaseListView", - "docstring": "A base view for displaying a list of objects.", "module": [ "django.views.generic.list", "Django", "1.7" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "BaseListView", + "docstring": "A base view for displaying a list of objects.", + "line_number": 140, + "import_path": "django.views.generic.list", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-display/#django.views.generic.list.BaseListView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 193, - "name": "ListView", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-display/#django.views.generic.list.ListView", - "docstring": "Render some list of objects, set by `self.model` or `self.queryset`.\n`self.queryset` can actually be any iterable of items, not just a queryset.", "module": [ "django.views.generic.list", "Django", "1.7" ], - "import_path": "django.views.generic" - }, - "model": "cbv.klass", - "pk": null + "name": "ListView", + "docstring": "Render some list of objects, set by `self.model` or `self.queryset`.\n`self.queryset` can actually be any iterable of items, not just a queryset.", + "line_number": 193, + "import_path": "django.views.generic", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/generic-display/#django.views.generic.list.ListView" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 11, - "name": "MultipleObjectMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin", - "docstring": "A mixin for views manipulating multiple objects.", "module": [ "django.views.generic.list", "Django", "1.7" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "MultipleObjectMixin", + "docstring": "A mixin for views manipulating multiple objects.", + "line_number": 11, + "import_path": "django.views.generic.list", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin" + } }, { + "model": "cbv.klass", "fields": { - "line_number": 164, - "name": "MultipleObjectTemplateResponseMixin", - "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin", - "docstring": "Mixin for responding with a template and list of objects.", "module": [ "django.views.generic.list", "Django", "1.7" ], - "import_path": "django.views.generic.list" - }, - "model": "cbv.klass", - "pk": null + "name": "MultipleObjectTemplateResponseMixin", + "docstring": "Mixin for responding with a template and list of objects.", + "line_number": 164, + "import_path": "django.views.generic.list", + "docs_url": "https://docs.djangoproject.com/en/1.7/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin" + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", + "CookieWizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "", - "name": "all" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "NamedUrlCookieWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "True", - "name": "allow_empty" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "NamedUrlSessionWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "False", - "name": "allow_empty" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DateMixin", - "django.views.generic.dates", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "False", - "name": "allow_future" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "done_step_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "", - "name": "args" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "url_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", + "SessionWizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "None", - "name": "condition_dict" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "storage_name", + "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "None", - "name": "content_type" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "all", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "None", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "count", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "None", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "current", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "'latest'", - "name": "context_object_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "first", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "StepsHelper", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "", - "name": "count" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "index", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "StepsHelper", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "", - "name": "current" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "last", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DateMixin", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "None", - "name": "date_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "next", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "'year'", - "name": "date_list_period" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "prev", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "'day'", - "name": "date_list_period" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "step0", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "'month'", - "name": "date_list_period" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "step1", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], + "name": "condition_dict", "value": "None", - "name": "day" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "'%d'", - "name": "day_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "form_list", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "", - "name": "__delattr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "initial_dict", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlWizardView", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], + "name": "instance_dict", "value": "None", - "name": "done_step_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], + "name": "storage_name", "value": "None", - "name": "fields" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "value": "", - "name": "first" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name", + "value": "'formtools/wizard/wizard_form.html'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.7" ], - "value": "None", - "name": "form_class" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "args", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.7" ], - "value": "None", - "name": "form_list" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__delattr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.7" ], + "name": "__getattribute__", "value": "", - "name": "__getattribute__" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.7" ], + "name": "__getitem__", "value": "", - "name": "__getitem__" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.7" ], + "name": "__getslice__", "value": "", - "name": "__getslice__" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { - "fields": { - "line_number": -1, - "klass": [ - "View", - "django.views.generic.base", - "Django", - "1.7" - ], - "value": "[u'get', u'post', u'put', u'patch', u'delete', u'head', u'options', u'trace']", - "name": "http_method_names" - }, "model": "cbv.klassattribute", - "pk": null -}, -{ + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.7" ], - "value": "", - "name": "index" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__init__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.7" ], - "value": "", - "name": "__init__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "message", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.7" ], - "value": "{}", - "name": "initial" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__reduce__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.7" ], - "value": "None", - "name": "initial_dict" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__repr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.7" ], - "value": "None", - "name": "instance_dict" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__setattr__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "GenericViewError", + "django.views.generic", "Django", "1.7" ], - "value": "", - "name": "last" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__setstate__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.7" ], - "value": "False", - "name": "make_object_list" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__str__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "GenericViewError", "django.views.generic", "Django", "1.7" ], - "value": "", - "name": "message" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "__unicode__", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "1.7" ], + "name": "pattern_name", "value": "None", - "name": "model" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "1.7" ], - "value": "None", - "name": "model" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "permanent", + "value": "True", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.7" ], - "value": "None", - "name": "month" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "query_string", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.7" ], - "value": "'%b'", - "name": "month_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.7" ], - "value": "", - "name": "next" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "content_type", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.7" ], - "value": "'page'", - "name": "page_kwarg" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "response_class", + "value": "", + "line_number": 135 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.7" ], + "name": "template_name", "value": "None", - "name": "paginate_by" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "1.7" ], - "value": "0", - "name": "paginate_orphans" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "http_method_names", + "value": "[u'get', u'post', u'put', u'patch', u'delete', u'head', u'options', u'trace']", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": 19, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.7" ], - "value": "", - "name": "paginator_class" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.7" ], - "value": "None", - "name": "pattern_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "context_object_name", + "value": "'latest'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.7" ], - "value": "True", - "name": "permanent" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "allow_empty", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.7" ], - "value": "'pk'", - "name": "pk_url_kwarg" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "date_list_period", + "value": "'year'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.7" ], - "value": "None", - "name": "prefix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "date_list_period", + "value": "'day'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.7" ], - "value": "", - "name": "prev" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "date_list_period", + "value": "'month'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.7" ], - "value": "None", - "name": "queryset" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "make_object_list", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DateMixin", + "django.views.generic.dates", "Django", "1.7" ], - "value": "None", - "name": "queryset" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "allow_future", + "value": "False", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "DateMixin", + "django.views.generic.dates", "Django", "1.7" ], - "value": "False", - "name": "query_string" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "date_field", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DateMixin", + "django.views.generic.dates", "Django", "1.7" ], - "value": "", - "name": "__reduce__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "uses_datetime_field", + "value": "", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.7" ], - "value": "", - "name": "__repr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_day'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": 135, "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DayMixin", + "django.views.generic.dates", "Django", "1.7" ], - "value": "", - "name": "response_class" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "day", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "DayMixin", + "django.views.generic.dates", "Django", "1.7" ], - "value": "", - "name": "__setattr__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "day_format", + "value": "'%d'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.7" ], - "value": "", - "name": "__setstate__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_month'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.7" ], - "value": "'slug'", - "name": "slug_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "month", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.7" ], - "value": "'slug'", - "name": "slug_url_kwarg" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "month_format", + "value": "'%b'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.7" ], - "value": "", - "name": "step0" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_day'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.7" ], - "value": "", - "name": "step1" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_week'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlCookieWizardView", - "django.contrib.formtools.wizard.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.7" ], - "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "week", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "CookieWizardView", - "django.contrib.formtools.wizard.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.7" ], - "value": "'django.contrib.formtools.wizard.storage.cookie.CookieStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "week_format", + "value": "'%U'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SessionWizardView", - "django.contrib.formtools.wizard.views", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.7" ], - "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_archive_year'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.7" ], + "name": "year", "value": "None", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlSessionWizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.7" ], - "value": "'django.contrib.formtools.wizard.storage.session.SessionStorage'", - "name": "storage_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "year_format", + "value": "'%Y'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.7" ], - "value": "", - "name": "__str__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "context_object_name", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.7" ], + "name": "model", "value": "None", - "name": "success_url" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.7" ], - "value": "None", - "name": "success_url" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "pk_url_kwarg", + "value": "'pk'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.7" ], + "name": "queryset", "value": "None", - "name": "template_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.7" ], - "value": "'formtools/wizard/wizard_form.html'", - "name": "template_name" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "slug_field", + "value": "'slug'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "1.7" ], - "value": "None", - "name": "template_name_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "slug_url_kwarg", + "value": "'slug'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.7" ], - "value": "'_archive_day'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_field", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.7" ], - "value": "'_archive'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_detail'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ "CreateView", "django.views.generic.edit", "Django", "1.7" ], + "name": "template_name_suffix", "value": "'_form'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.7" ], - "value": "'_archive_year'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_confirm_delete'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DeleteView", + "DeletionMixin", "django.views.generic.edit", "Django", "1.7" ], - "value": "'_confirm_delete'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "success_url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.7" ], - "value": "'_archive_week'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "form_class", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "1.7" ], - "value": "'_list'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "initial", + "value": "{}", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "UpdateView", + "FormMixin", "django.views.generic.edit", "Django", "1.7" ], - "value": "'_form'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "prefix", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.7" ], - "value": "'_archive_month'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "success_url", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.7" ], - "value": "'_archive_day'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "fields", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "UpdateView", + "django.views.generic.edit", "Django", "1.7" ], - "value": "'_detail'", - "name": "template_name_suffix" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "template_name_suffix", + "value": "'_form'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], - "value": "", - "name": "__unicode__" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "allow_empty", + "value": "True", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], + "name": "context_object_name", "value": "None", - "name": "url" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], + "name": "model", "value": "None", - "name": "url_name" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "DateMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], - "value": "", - "name": "uses_datetime_field" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "page_kwarg", + "value": "'page'", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], + "name": "paginate_by", "value": "None", - "name": "week" - }, - "model": "cbv.klassattribute", - "pk": null + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], - "value": "'%U'", - "name": "week_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "paginate_orphans", + "value": "0", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], - "value": "None", - "name": "year" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "paginator_class", + "value": "", + "line_number": 19 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": -1, "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], - "value": "'%Y'", - "name": "year_format" - }, - "model": "cbv.klassattribute", - "pk": null + "name": "queryset", + "value": "None", + "line_number": -1 + } }, { + "model": "cbv.klassattribute", + "pk": null, "fields": { - "line_number": 107, - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", - "name": "_allowed_methods", - "docstring": "", "klass": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "template_name_suffix", + "value": "'_list'", + "line_number": -1 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 46, - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n # sanitize keyword arguments\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "name": "as_view", - "docstring": "Main entry point for a request-response process.", "klass": [ - "View", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "cls, **initkwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "This renders the form or, if needed, does the http redirects.", + "code": "def get(self, *args, **kwargs):\n \"\"\"\n This renders the form or, if needed, does the http redirects.\n \"\"\"\n step_url = kwargs.get('step', None)\n if step_url is None:\n if 'reset' in self.request.GET:\n self.storage.reset()\n self.storage.current_step = self.steps.first\n if self.request.GET:\n query_string = \"?%s\" % self.request.GET.urlencode()\n else:\n query_string = \"\"\n return redirect(self.get_step_url(self.steps.current)\n + query_string)\n # is the current step the \"done\" name/view?\n elif step_url == self.done_step_name:\n last_step = self.steps.last\n return self.render_done(self.get_form(step=last_step,\n data=self.storage.get_step_data(last_step),\n files=self.storage.get_step_files(last_step)\n ), **kwargs)\n # is the url step name not equal to the step in the storage?\n # if yes, change the step in the storage (if name exists)\n elif step_url == self.steps.current:\n # URL step name and storage step name are equal, render!\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n elif step_url in self.get_form_list():\n self.storage.current_step = step_url\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n # invalid step name, reset to first and redirect.\n else:\n self.storage.current_step = self.steps.first\n return redirect(self.get_step_url(self.steps.first))\n", + "kwargs": "self, *args, **kwargs", + "line_number": 624 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 114, - "code": "@classonlymethod\ndef as_view(cls, *args, **kwargs):\n \"\"\"\n This method is used within urls.py to create unique wizardview\n instances for every request. We need to override this method because\n we add some kwargs which are needed to make the wizardview usable.\n \"\"\"\n initkwargs = cls.get_initkwargs(*args, **kwargs)\n return super(WizardView, cls).as_view(**initkwargs)\n", - "name": "as_view", - "docstring": "This method is used within urls.py to create unique wizardview\ninstances for every request. We need to override this method because\nwe add some kwargs which are needed to make the wizardview usable.", "klass": [ - "WizardView", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "cls, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "NamedUrlWizardView provides the url_name of this wizard in the context\ndict `wizard`.", + "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n NamedUrlWizardView provides the url_name of this wizard in the context\n dict `wizard`.\n \"\"\"\n context = super(NamedUrlWizardView, self).get_context_data(form=form, **kwargs)\n context['wizard']['url_name'] = self.url_name\n return context\n", + "kwargs": "self, form, **kwargs", + "line_number": 679 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 247, - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", - "name": "delete", - "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_initkwargs", + "docstring": "We require a url_name to reverse URLs later. Additionally users can\npass a done_step_name to change the URL name of the \"done\" view.", + "code": "@classmethod\ndef get_initkwargs(cls, *args, **kwargs):\n \"\"\"\n We require a url_name to reverse URLs later. Additionally users can\n pass a done_step_name to change the URL name of the \"done\" view.\n \"\"\"\n assert 'url_name' in kwargs, 'URL name is needed to resolve correct wizard URLs'\n extra_kwargs = {\n 'done_step_name': kwargs.pop('done_step_name', 'done'),\n 'url_name': kwargs.pop('url_name'),\n }\n initkwargs = super(NamedUrlWizardView, cls).get_initkwargs(*args, **kwargs)\n initkwargs.update(extra_kwargs)\n assert initkwargs['done_step_name'] not in initkwargs['form_list'], \\\n 'step name \"%s\" is reserved for \"done\" view' % initkwargs['done_step_name']\n return initkwargs\n", + "kwargs": "cls, *args, **kwargs", + "line_number": 603 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 212, - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "delete", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_step_url", + "docstring": "", + "code": "def get_step_url(self, step):\n return reverse(self.url_name, kwargs={'step': step})\n", + "kwargs": "self, step", + "line_number": 621 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 37, - "code": "def __dir__(self):\n return self.all\n", - "name": "__dir__", - "docstring": "", "klass": [ - "StepsHelper", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "Do a redirect if user presses the prev. step button. The rest of this\nis super'd from WizardView.", + "code": "def post(self, *args, **kwargs):\n \"\"\"\n Do a redirect if user presses the prev. step button. The rest of this\n is super'd from WizardView.\n \"\"\"\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n return self.render_goto_step(wizard_goto_step)\n return super(NamedUrlWizardView, self).post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 669 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 79, - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", - "name": "dispatch", - "docstring": "", "klass": [ - "View", - "django.views.generic.base", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "render_done", + "docstring": "When rendering the done view, we have to redirect first (if the URL\nname doesn't fit).", + "code": "def render_done(self, form, **kwargs):\n \"\"\"\n When rendering the done view, we have to redirect first (if the URL\n name doesn't fit).\n \"\"\"\n if kwargs.get('step', None) != self.done_step_name:\n return redirect(self.get_step_url(self.done_step_name))\n return super(NamedUrlWizardView, self).render_done(form, **kwargs)\n", + "kwargs": "self, form, **kwargs", + "line_number": 713 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 222, - "code": "def dispatch(self, request, *args, **kwargs):\n \"\"\"\n This method gets called by the routing engine. The first argument is\n `request` which contains a `HttpRequest` instance.\n The request is stored in `self.request` for later use. The storage\n instance is stored in `self.storage`.\n After processing the request using the `dispatch` method, the\n response gets updated by the storage engine (for example add cookies).\n \"\"\"\n # add the storage engine to the current wizardview instance\n self.prefix = self.get_prefix(*args, **kwargs)\n self.storage = get_storage(self.storage_name, self.prefix, request,\n getattr(self, 'file_storage', None))\n self.steps = StepsHelper(self)\n response = super(WizardView, self).dispatch(request, *args, **kwargs)\n # update the response (e.g. adding cookies)\n self.storage.update_response(response)\n return response\n", - "name": "dispatch", - "docstring": "This method gets called by the routing engine. The first argument is\n`request` which contains a `HttpRequest` instance.\nThe request is stored in `self.request` for later use. The storage\ninstance is stored in `self.storage`.\n\nAfter processing the request using the `dispatch` method, the\nresponse gets updated by the storage engine (for example add cookies).", "klass": [ - "WizardView", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "render_goto_step", + "docstring": "This method gets called when the current step has to be changed.\n`goto_step` contains the requested step to go to.", + "code": "def render_goto_step(self, goto_step, **kwargs):\n \"\"\"\n This method gets called when the current step has to be changed.\n `goto_step` contains the requested step to go to.\n \"\"\"\n self.storage.current_step = goto_step\n return redirect(self.get_step_url(goto_step))\n", + "kwargs": "self, goto_step, **kwargs", + "line_number": 697 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 573, - "code": "def done(self, form_list, **kwargs):\n \"\"\"\n This method must be overridden by a subclass to process to form data\n after processing all steps.\n \"\"\"\n raise NotImplementedError(\"Your %s class has not defined a done() \"\n \"method, which is required.\" % self.__class__.__name__)\n", - "name": "done", - "docstring": "This method must be overridden by a subclass to process to form data\nafter processing all steps.", "klass": [ - "WizardView", + "NamedUrlWizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, form_list, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "render_next_step", + "docstring": "When using the NamedUrlWizardView, we have to redirect to update the\nbrowser's URL to match the shown step.", + "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n When using the NamedUrlWizardView, we have to redirect to update the\n browser's URL to match the shown step.\n \"\"\"\n next_step = self.get_next_step()\n self.storage.current_step = next_step\n return redirect(self.get_step_url(next_step))\n", + "kwargs": "self, form, **kwargs", + "line_number": 688 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 81, - "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "name": "form_invalid", - "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "render_revalidation_failure", + "docstring": "When a step fails, we have to redirect the user to the first failing\nstep.", + "code": "def render_revalidation_failure(self, failed_step, form, **kwargs):\n \"\"\"\n When a step fails, we have to redirect the user to the first failing\n step.\n \"\"\"\n self.storage.current_step = failed_step\n return redirect(self.get_step_url(failed_step))\n", + "kwargs": "self, failed_step, form, **kwargs", + "line_number": 705 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 75, - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "__dir__", + "docstring": "", + "code": "def __dir__(self):\n return self.all\n", + "kwargs": "self", + "line_number": 37 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 145, - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", - "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "__init__", + "docstring": "", + "code": "def __init__(self, wizard):\n self._wizard = wizard\n", + "kwargs": "self, wizard", + "line_number": 34 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 333, - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "StepsHelper", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "__len__", + "docstring": "", + "code": "def __len__(self):\n return self.count\n", + "kwargs": "self", + "line_number": 40 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 624, - "code": "def get(self, *args, **kwargs):\n \"\"\"\n This renders the form or, if needed, does the http redirects.\n \"\"\"\n step_url = kwargs.get('step', None)\n if step_url is None:\n if 'reset' in self.request.GET:\n self.storage.reset()\n self.storage.current_step = self.steps.first\n if self.request.GET:\n query_string = \"?%s\" % self.request.GET.urlencode()\n else:\n query_string = \"\"\n return redirect(self.get_step_url(self.steps.current)\n + query_string)\n # is the current step the \"done\" name/view?\n elif step_url == self.done_step_name:\n last_step = self.steps.last\n return self.render_done(self.get_form(step=last_step,\n data=self.storage.get_step_data(last_step),\n files=self.storage.get_step_files(last_step)\n ), **kwargs)\n # is the url step name not equal to the step in the storage?\n # if yes, change the step in the storage (if name exists)\n elif step_url == self.steps.current:\n # URL step name and storage step name are equal, render!\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n elif step_url in self.get_form_list():\n self.storage.current_step = step_url\n return self.render(self.get_form(\n data=self.storage.current_step_data,\n files=self.storage.current_step_files,\n ), **kwargs)\n # invalid step name, reset to first and redirect.\n else:\n self.storage.current_step = self.steps.first\n return redirect(self.get_step_url(self.steps.first))\n", - "name": "get", - "docstring": "This renders the form or, if needed, does the http redirects.", "klass": [ - "NamedUrlWizardView", + "StepsHelper", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "__repr__", + "docstring": "", + "code": "def __repr__(self):\n return '' % (self._wizard, self.all)\n", + "kwargs": "self", + "line_number": 43 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 153, - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "TemplateView", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "as_view", + "docstring": "This method is used within urls.py to create unique wizardview\ninstances for every request. We need to override this method because\nwe add some kwargs which are needed to make the wizardview usable.", + "code": "@classonlymethod\ndef as_view(cls, *args, **kwargs):\n \"\"\"\n This method is used within urls.py to create unique wizardview\n instances for every request. We need to override this method because\n we add some kwargs which are needed to make the wizardview usable.\n \"\"\"\n initkwargs = cls.get_initkwargs(*args, **kwargs)\n return super(WizardView, cls).as_view(**initkwargs)\n", + "kwargs": "cls, *args, **kwargs", + "line_number": 114 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 243, - "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n This method handles GET requests.\n If a GET request reaches this point, the wizard assumes that the user\n just starts at the first step or wants to restart the process.\n The data of the wizard will be resetted before rendering the first step.\n \"\"\"\n self.storage.reset()\n # reset the current step to the first step.\n self.storage.current_step = self.steps.first\n return self.render(self.get_form())\n", - "name": "get", - "docstring": "This method handles GET requests.\n\nIf a GET request reaches this point, the wizard assumes that the user\njust starts at the first step or wants to restart the process.\nThe data of the wizard will be resetted before rendering the first step.", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "dispatch", + "docstring": "This method gets called by the routing engine. The first argument is\n`request` which contains a `HttpRequest` instance.\nThe request is stored in `self.request` for later use. The storage\ninstance is stored in `self.storage`.\n\nAfter processing the request using the `dispatch` method, the\nresponse gets updated by the storage engine (for example add cookies).", + "code": "def dispatch(self, request, *args, **kwargs):\n \"\"\"\n This method gets called by the routing engine. The first argument is\n `request` which contains a `HttpRequest` instance.\n The request is stored in `self.request` for later use. The storage\n instance is stored in `self.storage`.\n After processing the request using the `dispatch` method, the\n response gets updated by the storage engine (for example add cookies).\n \"\"\"\n # add the storage engine to the current wizardview instance\n self.prefix = self.get_prefix(*args, **kwargs)\n self.storage = get_storage(self.storage_name, self.prefix, request,\n getattr(self, 'file_storage', None))\n self.steps = StepsHelper(self)\n response = super(WizardView, self).dispatch(request, *args, **kwargs)\n # update the response (e.g. adding cookies)\n self.storage.update_response(response)\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 222 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 144, - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if (self.get_paginate_by(self.object_list) is not None\n and hasattr(self.object_list, 'exists')):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data()\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseListView", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "done", + "docstring": "This method must be overridden by a subclass to process to form data\nafter processing all steps.", + "code": "def done(self, form_list, **kwargs):\n \"\"\"\n This method must be overridden by a subclass to process to form data\n after processing all steps.\n \"\"\"\n raise NotImplementedError(\"Your %s class has not defined a done() \"\n \"method, which is required.\" % self.__class__.__name__)\n", + "kwargs": "self, form_list, **kwargs", + "line_number": 573 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 201, - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "This method handles GET requests.\n\nIf a GET request reaches this point, the wizard assumes that the user\njust starts at the first step or wants to restart the process.\nThe data of the wizard will be resetted before rendering the first step.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n This method handles GET requests.\n If a GET request reaches this point, the wizard assumes that the user\n just starts at the first step or wants to restart the process.\n The data of the wizard will be resetted before rendering the first step.\n \"\"\"\n self.storage.reset()\n # reset the current step to the first step.\n self.storage.current_step = self.steps.first\n return self.render(self.get_form())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 243 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 188, - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s', request.path,\n extra={\n 'status_code': 410,\n 'request': request\n })\n return http.HttpResponseGone()\n", - "name": "get", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_all_cleaned_data", + "docstring": "Returns a merged dictionary of all step cleaned_data dictionaries.\nIf a step contains a `FormSet`, the key will be prefixed with\n'formset-' and contain a list of the formset cleaned_data dictionaries.", + "code": "def get_all_cleaned_data(self):\n \"\"\"\n Returns a merged dictionary of all step cleaned_data dictionaries.\n If a step contains a `FormSet`, the key will be prefixed with\n 'formset-' and contain a list of the formset cleaned_data dictionaries.\n \"\"\"\n cleaned_data = {}\n for form_key in self.get_form_list():\n form_obj = self.get_form(\n step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key)\n )\n if form_obj.is_valid():\n if isinstance(form_obj.cleaned_data, (tuple, list)):\n cleaned_data.update({\n 'formset-%s' % form_key: form_obj.cleaned_data\n })\n else:\n cleaned_data.update(form_obj.cleaned_data)\n return cleaned_data\n", + "kwargs": "self", + "line_number": 458 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 224, - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_cleaned_data_for_step", + "docstring": "Returns the cleaned data for a given `step`. Before returning the\ncleaned data, the stored values are revalidated through the form.\nIf the data doesn't validate, None will be returned.", + "code": "def get_cleaned_data_for_step(self, step):\n \"\"\"\n Returns the cleaned data for a given `step`. Before returning the\n cleaned data, the stored values are revalidated through the form.\n If the data doesn't validate, None will be returned.\n \"\"\"\n if step in self.form_list:\n form_obj = self.get_form(step=step,\n data=self.storage.get_step_data(step),\n files=self.storage.get_step_files(step))\n if form_obj.is_valid():\n return form_obj.cleaned_data\n return None\n", + "kwargs": "self, step", + "line_number": 480 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 157, - "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n return self.render_to_response(self.get_context_data(form=form))\n", - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Returns the template context for a step. You can overwrite this method\nto add more data for all or some steps. This method returns a\ndictionary containing the rendered form step. Available template\ncontext variables are:\n\n * all extra data stored in the storage backend\n * `wizard` - a dictionary representation of the wizard instance\n\nExample:\n\n.. code-block:: python\n\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context", + "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n Returns the template context for a step. You can overwrite this method\n to add more data for all or some steps. This method returns a\n dictionary containing the rendered form step. Available template\n context variables are:\n * all extra data stored in the storage backend\n * `wizard` - a dictionary representation of the wizard instance\n Example:\n .. code-block:: python\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context\n \"\"\"\n context = super(WizardView, self).get_context_data(form=form, **kwargs)\n context.update(self.storage.extra_data)\n context['wizard'] = {\n 'form': form,\n 'steps': self.steps,\n 'management_form': ManagementForm(prefix=self.prefix, initial={\n 'current_step': self.steps.current,\n }),\n }\n return context\n", + "kwargs": "self, form, **kwargs", + "line_number": 533 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 113, - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", - "name": "get", - "docstring": "", "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form", + "docstring": "Constructs the form for a given `step`. If no `step` is defined, the\ncurrent step will be determined automatically.\n\nThe form will be initialized using the `data` argument to prefill the\nnew form. If needed, instance or queryset (for `ModelForm` or\n`ModelFormSet`) will be added too.", + "code": "def get_form(self, step=None, data=None, files=None):\n \"\"\"\n Constructs the form for a given `step`. If no `step` is defined, the\n current step will be determined automatically.\n The form will be initialized using the `data` argument to prefill the\n new form. If needed, instance or queryset (for `ModelForm` or\n `ModelFormSet`) will be added too.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_class = self.form_list[step]\n # prepare the kwargs for the form instance.\n kwargs = self.get_form_kwargs(step)\n kwargs.update({\n 'data': data,\n 'files': files,\n 'prefix': self.get_form_prefix(step, form_class),\n 'initial': self.get_form_initial(step),\n })\n if issubclass(form_class, (forms.ModelForm, forms.models.BaseInlineFormSet)):\n # If the form is based on ModelForm or InlineFormSet,\n # add instance if available and not previously set.\n kwargs.setdefault('instance', self.get_form_instance(step))\n elif issubclass(form_class, forms.models.BaseModelFormSet):\n # If the form is based on ModelFormSet, add queryset if available\n # and not previous set.\n kwargs.setdefault('queryset', self.get_form_instance(step))\n return form_class(**kwargs)\n", + "kwargs": "self, step=None, data=None, files=None", + "line_number": 391 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 458, - "code": "def get_all_cleaned_data(self):\n \"\"\"\n Returns a merged dictionary of all step cleaned_data dictionaries.\n If a step contains a `FormSet`, the key will be prefixed with\n 'formset-' and contain a list of the formset cleaned_data dictionaries.\n \"\"\"\n cleaned_data = {}\n for form_key in self.get_form_list():\n form_obj = self.get_form(\n step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key)\n )\n if form_obj.is_valid():\n if isinstance(form_obj.cleaned_data, (tuple, list)):\n cleaned_data.update({\n 'formset-%s' % form_key: form_obj.cleaned_data\n })\n else:\n cleaned_data.update(form_obj.cleaned_data)\n return cleaned_data\n", - "name": "get_all_cleaned_data", - "docstring": "Returns a merged dictionary of all step cleaned_data dictionaries.\nIf a step contains a `FormSet`, the key will be prefixed with\n'formset-' and contain a list of the formset cleaned_data dictionaries.", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_initial", + "docstring": "Returns a dictionary which will be passed to the form for `step`\nas `initial`. If no initial data was provided while initializing the\nform wizard, an empty dictionary will be returned.", + "code": "def get_form_initial(self, step):\n \"\"\"\n Returns a dictionary which will be passed to the form for `step`\n as `initial`. If no initial data was provided while initializing the\n form wizard, an empty dictionary will be returned.\n \"\"\"\n return self.initial_dict.get(step, {})\n", + "kwargs": "self, step", + "line_number": 368 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 94, - "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "name": "get_allow_empty", - "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_instance", + "docstring": "Returns an object which will be passed to the form for `step`\nas `instance`. If no instance object was provided while initializing\nthe form wizard, None will be returned.", + "code": "def get_form_instance(self, step):\n \"\"\"\n Returns an object which will be passed to the form for `step`\n as `instance`. If no instance object was provided while initializing\n the form wizard, None will be returned.\n \"\"\"\n return self.instance_dict.get(step, None)\n", + "kwargs": "self, step", + "line_number": 376 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 273, - "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", - "name": "get_allow_future", - "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form\n(or formset) on the given step.", + "code": "def get_form_kwargs(self, step=None):\n \"\"\"\n Returns the keyword arguments for instantiating the form\n (or formset) on the given step.\n \"\"\"\n return {}\n", + "kwargs": "self, step=None", + "line_number": 384 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 480, - "code": "def get_cleaned_data_for_step(self, step):\n \"\"\"\n Returns the cleaned data for a given `step`. Before returning the\n cleaned data, the stored values are revalidated through the form.\n If the data doesn't validate, None will be returned.\n \"\"\"\n if step in self.form_list:\n form_obj = self.get_form(step=step,\n data=self.storage.get_step_data(step),\n files=self.storage.get_step_files(step))\n if form_obj.is_valid():\n return form_obj.cleaned_data\n return None\n", - "name": "get_cleaned_data_for_step", - "docstring": "Returns the cleaned data for a given `step`. Before returning the\ncleaned data, the stored values are revalidated through the form.\nIf the data doesn't validate, None will be returned.", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_list", + "docstring": "This method returns a form_list based on the initial form list but\nchecks if there is a condition method/value in the condition_list.\nIf an entry exists in the condition list, it will call/read the value\nand respect the result. (True means add the form, False means ignore\nthe form)\n\nThe form_list is always generated on the fly because condition methods\ncould use data from other (maybe previous forms).", + "code": "def get_form_list(self):\n \"\"\"\n This method returns a form_list based on the initial form list but\n checks if there is a condition method/value in the condition_list.\n If an entry exists in the condition list, it will call/read the value\n and respect the result. (True means add the form, False means ignore\n the form)\n The form_list is always generated on the fly because condition methods\n could use data from other (maybe previous forms).\n \"\"\"\n form_list = OrderedDict()\n for form_key, form_class in six.iteritems(self.form_list):\n # try to fetch the value from condition list, by default, the form\n # gets passed to the new list.\n condition = self.condition_dict.get(form_key, True)\n if callable(condition):\n # call the value if needed, passes the current instance.\n condition = condition(self)\n if condition:\n form_list[form_key] = form_class\n return form_list\n", + "kwargs": "self", + "line_number": 199 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 22, - "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", - "name": "get_context_data", - "docstring": "", "klass": [ - "ContextMixin", - "django.views.generic.base", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_prefix", + "docstring": "Returns the prefix which will be used when calling the actual form for\nthe given step. `step` contains the step-name, `form` the form which\nwill be called with the returned prefix.\n\nIf no step is given, the form_prefix will determine the current step\nautomatically.", + "code": "def get_form_prefix(self, step=None, form=None):\n \"\"\"\n Returns the prefix which will be used when calling the actual form for\n the given step. `step` contains the step-name, `form` the form which\n will be called with the returned prefix.\n If no step is given, the form_prefix will determine the current step\n automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n return str(step)\n", + "kwargs": "self, step=None, form=None", + "line_number": 355 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 95, - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", - "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_step_data", + "docstring": "Is used to return the raw form data. You may use this method to\nmanipulate the data.", + "code": "def get_form_step_data(self, form):\n \"\"\"\n Is used to return the raw form data. You may use this method to\n manipulate the data.\n \"\"\"\n return form.data\n", + "kwargs": "self, form", + "line_number": 444 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 112, - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list', self.object_list)\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", - "name": "get_context_data", - "docstring": "Get the context for this view.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_step_files", + "docstring": "Is used to return the raw form files. You may use this method to\nmanipulate the data.", + "code": "def get_form_step_files(self, form):\n \"\"\"\n Is used to return the raw form files. You may use this method to\n manipulate the data.\n \"\"\"\n return form.files\n", + "kwargs": "self, form", + "line_number": 451 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 533, - "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n Returns the template context for a step. You can overwrite this method\n to add more data for all or some steps. This method returns a\n dictionary containing the rendered form step. Available template\n context variables are:\n * all extra data stored in the storage backend\n * `wizard` - a dictionary representation of the wizard instance\n Example:\n .. code-block:: python\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context\n \"\"\"\n context = super(WizardView, self).get_context_data(form=form, **kwargs)\n context.update(self.storage.extra_data)\n context['wizard'] = {\n 'form': form,\n 'steps': self.steps,\n 'management_form': ManagementForm(prefix=self.prefix, initial={\n 'current_step': self.steps.current,\n }),\n }\n return context\n", - "name": "get_context_data", - "docstring": "Returns the template context for a step. You can overwrite this method\nto add more data for all or some steps. This method returns a\ndictionary containing the rendered form step. Available template\ncontext variables are:\n\n * all extra data stored in the storage backend\n * `wizard` - a dictionary representation of the wizard instance\n\nExample:\n\n.. code-block:: python\n\n class MyWizard(WizardView):\n def get_context_data(self, form, **kwargs):\n context = super(MyWizard, self).get_context_data(form=form, **kwargs)\n if self.steps.current == 'my_step_name':\n context.update({'another_var': True})\n return context", "klass": [ "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_initkwargs", + "docstring": "Creates a dict with all needed parameters for the form wizard instances.\n\n* `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n* `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n* `instance_dict` - contains a dictionary whose values are model\n instances if the step is based on a ``ModelForm`` and querysets if\n the step is based on a ``ModelFormSet``. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n* `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.", + "code": "@classmethod\ndef get_initkwargs(cls, form_list=None, initial_dict=None,\n instance_dict=None, condition_dict=None, *args, **kwargs):\n \"\"\"\n Creates a dict with all needed parameters for the form wizard instances.\n * `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n * `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n * `instance_dict` - contains a dictionary whose values are model\n instances if the step is based on a ``ModelForm`` and querysets if\n the step is based on a ``ModelFormSet``. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n * `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.\n \"\"\"\n kwargs.update({\n 'initial_dict': initial_dict or kwargs.pop('initial_dict',\n getattr(cls, 'initial_dict', None)) or {},\n 'instance_dict': instance_dict or kwargs.pop('instance_dict',\n getattr(cls, 'instance_dict', None)) or {},\n 'condition_dict': condition_dict or kwargs.pop('condition_dict',\n getattr(cls, 'condition_dict', None)) or {}\n })\n form_list = form_list or kwargs.pop('form_list',\n getattr(cls, 'form_list', None)) or []\n computed_form_list = OrderedDict()\n assert len(form_list) > 0, 'at least one form is needed'\n # walk through the passed form list\n for i, form in enumerate(form_list):\n if isinstance(form, (list, tuple)):\n # if the element is a tuple, add the tuple to the new created\n # sorted dictionary.\n computed_form_list[six.text_type(form[0])] = form[1]\n else:\n # if not, add the form with a zero based counter as unicode\n computed_form_list[six.text_type(i)] = form\n # walk through the new created list of forms\n for form in six.itervalues(computed_form_list):\n if issubclass(form, formsets.BaseFormSet):\n # if the element is based on BaseFormSet (FormSet/ModelFormSet)\n # we need to override the form variable.\n form = form.form\n # check if any form contains a FileField, if yes, we need a\n # file_storage added to the wizardview (by subclassing).\n for field in six.itervalues(form.base_fields):\n if (isinstance(field, forms.FileField) and\n not hasattr(cls, 'file_storage')):\n raise NoFileStorageConfigured(\n \"You need to define 'file_storage' in your \"\n \"wizard view in order to handle file uploads.\")\n # build the kwargs for the wizardview instances\n kwargs['form_list'] = computed_form_list\n return kwargs\n", + "kwargs": "cls, form_list=None, initial_dict=None, instance_dict=None, condition_dict=None, *args, **kwargs", + "line_number": 124 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 679, - "code": "def get_context_data(self, form, **kwargs):\n \"\"\"\n NamedUrlWizardView provides the url_name of this wizard in the context\n dict `wizard`.\n \"\"\"\n context = super(NamedUrlWizardView, self).get_context_data(form=form, **kwargs)\n context['wizard']['url_name'] = self.url_name\n return context\n", - "name": "get_context_data", - "docstring": "NamedUrlWizardView provides the url_name of this wizard in the context\ndict `wizard`.", "klass": [ - "NamedUrlWizardView", + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_step", + "docstring": "Returns the next step after the given `step`. If no more steps are\navailable, None will be returned. If the `step` argument is None, the\ncurrent step will be determined automatically.", + "code": "def get_next_step(self, step=None):\n \"\"\"\n Returns the next step after the given `step`. If no more steps are\n available, None will be returned. If the `step` argument is None, the\n current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n keys = list(form_list.keys())\n key = keys.index(step) + 1\n if len(keys) > key:\n return keys[key]\n return None\n", + "kwargs": "self, step=None", + "line_number": 494 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 101, - "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, object_list" - }, - "model": "cbv.method", - "pk": null + "name": "get_prefix", + "docstring": "", + "code": "def get_prefix(self, *args, **kwargs):\n # TODO: Add some kind of unique id to prefix\n return normalize_name(self.__class__.__name__)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 195 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 84, - "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, obj" - }, - "model": "cbv.method", - "pk": null + "name": "get_prev_step", + "docstring": "Returns the previous step before the given `step`. If there are no\nsteps available, None will be returned. If the `step` argument is\nNone, the current step will be determined automatically.", + "code": "def get_prev_step(self, step=None):\n \"\"\"\n Returns the previous step before the given `step`. If there are no\n steps available, None will be returned. If the `step` argument is\n None, the current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n keys = list(form_list.keys())\n key = keys.index(step) - 1\n if key >= 0:\n return keys[key]\n return None\n", + "kwargs": "self, step=None", + "line_number": 509 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 181, - "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", "klass": [ - "DayMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_step_index", + "docstring": "Returns the index for the given `step` name. If no step is given,\nthe current step will be used to get the index.", + "code": "def get_step_index(self, step=None):\n \"\"\"\n Returns the index for the given `step` name. If no step is given,\n the current step will be used to get the index.\n \"\"\"\n if step is None:\n step = self.steps.current\n return list(self.get_form_list().keys()).index(step)\n", + "kwargs": "self, step=None", + "line_number": 524 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 125, - "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", "klass": [ - "MonthMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "This method handles POST requests.\n\nThe wizard will render either the current step (if form validation\nwasn't successful), the next step (if the current step was stored\nsuccessful) or the done view (if no more steps are available)", + "code": "def post(self, *args, **kwargs):\n \"\"\"\n This method handles POST requests.\n The wizard will render either the current step (if form validation\n wasn't successful), the next step (if the current step was stored\n successful) or the done view (if no more steps are available)\n \"\"\"\n # Look for a wizard_goto_step element in the posted data which\n # contains a valid step name. If one was found, render the requested\n # form. (This makes stepping back a lot easier).\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n return self.render_goto_step(wizard_goto_step)\n # Check if form was refreshed\n management_form = ManagementForm(self.request.POST, prefix=self.prefix)\n if not management_form.is_valid():\n raise ValidationError(\n _('ManagementForm data is missing or has been tampered.'),\n code='missing_management_form',\n )\n form_current_step = management_form.cleaned_data['current_step']\n if (form_current_step != self.steps.current and\n self.storage.current_step is not None):\n # form refreshed, change current step\n self.storage.current_step = form_current_step\n # get the form for the current step\n form = self.get_form(data=self.request.POST, files=self.request.FILES)\n # and try to validate\n if form.is_valid():\n # if the form is valid, store the cleaned data and files.\n self.storage.set_step_data(self.steps.current, self.process_step(form))\n self.storage.set_step_files(self.steps.current, self.process_step_files(form))\n # check if the current step is the last step\n if self.steps.current == self.steps.last:\n # no more steps, render done view\n return self.render_done(form, **kwargs)\n else:\n # proceed to the next step\n return self.render_next_step(form)\n return self.render(form)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 257 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 237, - "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "process_step", + "docstring": "This method is used to postprocess the form data. By default, it\nreturns the raw `form.data` dictionary.", + "code": "def process_step(self, form):\n \"\"\"\n This method is used to postprocess the form data. By default, it\n returns the raw `form.data` dictionary.\n \"\"\"\n return self.get_form_step_data(form)\n", + "kwargs": "self, form", + "line_number": 421 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 66, - "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", "klass": [ - "YearMixin", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "process_step_files", + "docstring": "This method is used to postprocess the form files. By default, it\nreturns the raw `form.files` dictionary.", + "code": "def process_step_files(self, form):\n \"\"\"\n This method is used to postprocess the form files. By default, it\n returns the raw `form.files` dictionary.\n \"\"\"\n return self.get_form_step_files(form)\n", + "kwargs": "self, form", + "line_number": 428 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 587, - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "render", + "docstring": "Returns a ``HttpResponse`` containing all needed context data.", + "code": "def render(self, form=None, **kwargs):\n \"\"\"\n Returns a ``HttpResponse`` containing all needed context data.\n \"\"\"\n form = form or self.get_form()\n context = self.get_context_data(form=form, **kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, form=None, **kwargs", + "line_number": 565 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 411, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset(ordering='-%s' % self.get_date_field())\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_done", + "docstring": "This method gets called when all forms passed. The method should also\nre-validate all steps to prevent manipulation. If any form fails to\nvalidate, `render_revalidation_failure` should get called.\nIf everything is fine call `done`.", + "code": "def render_done(self, form, **kwargs):\n \"\"\"\n This method gets called when all forms passed. The method should also\n re-validate all steps to prevent manipulation. If any form fails to\n validate, `render_revalidation_failure` should get called.\n If everything is fine call `done`.\n \"\"\"\n final_forms = OrderedDict()\n # walk through the form list and try to validate the data again.\n for form_key in self.get_form_list():\n form_obj = self.get_form(step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key))\n if not form_obj.is_valid():\n return self.render_revalidation_failure(form_key, form_obj, **kwargs)\n final_forms[form_key] = form_obj\n # render the done view and reset the wizard before returning the\n # response. This is needed to prevent from rendering done with the\n # same data twice.\n done_response = self.done(final_forms.values(), form_dict=final_forms, **kwargs)\n self.storage.reset()\n return done_response\n", + "kwargs": "self, form, **kwargs", + "line_number": 331 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 438, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(ordering='-%s' % date_field, **lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_goto_step", + "docstring": "This method gets called when the current step has to be changed.\n`goto_step` contains the requested step to go to.", + "code": "def render_goto_step(self, goto_step, **kwargs):\n \"\"\"\n This method gets called when the current step has to be changed.\n `goto_step` contains the requested step to go to.\n \"\"\"\n self.storage.current_step = goto_step\n form = self.get_form(\n data=self.storage.get_step_data(self.steps.current),\n files=self.storage.get_step_files(self.steps.current))\n return self.render(form)\n", + "kwargs": "self, goto_step, **kwargs", + "line_number": 320 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 489, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_next_step", + "docstring": "This method gets called when the next step/form should be rendered.\n`form` contains the last/current form.", + "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n This method gets called when the next step/form should be rendered.\n `form` contains the last/current form.\n \"\"\"\n # get the form instance based on the data from the storage backend\n # (if available).\n next_step = self.steps.next\n new_form = self.get_form(next_step,\n data=self.storage.get_step_data(next_step),\n files=self.storage.get_step_files(next_step))\n # change the stored current step\n self.storage.current_step = next_step\n return self.render(new_form, **kwargs)\n", + "kwargs": "self, form, **kwargs", + "line_number": 304 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 340, - "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", - "name": "get_dated_items", - "docstring": "Obtain the list of dates and items.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_revalidation_failure", + "docstring": "Gets called when a form doesn't validate when rendering the done\nview. By default, it changes the current step to failing forms step\nand renders the form.", + "code": "def render_revalidation_failure(self, step, form, **kwargs):\n \"\"\"\n Gets called when a form doesn't validate when rendering the done\n view. By default, it changes the current step to failing forms step\n and renders the form.\n \"\"\"\n self.storage.current_step = step\n return self.render(form, **kwargs)\n", + "kwargs": "self, step, form, **kwargs", + "line_number": 435 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 529, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "__repr__", + "docstring": "", + "code": "def __repr__(self):\n return '<%s: forms: %s>' % (self.__class__.__name__, self.form_list)\n", + "kwargs": "self", + "line_number": 111 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 616, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", + "kwargs": "self, **kwargs", + "line_number": 22 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 573, - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "delete", + "docstring": "", + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 212 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 346, - "code": "def get_dated_queryset(self, ordering=None, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if ordering is not None:\n qs = qs.order_by(ordering)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self, ordering=None, **lookup" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s', request.path,\n extra={\n 'status_code': 410,\n 'request': request\n })\n return http.HttpResponseGone()\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 188 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 265, - "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", + "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n try:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n except NoReverseMatch:\n return None\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", + "kwargs": "self, *args, **kwargs", + "line_number": 167 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 381, - "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self, queryset, date_type=None, ordering=u'ASC'" - }, - "model": "cbv.method", - "pk": null + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 203 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 375, - "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", - "name": "get_date_list_period", - "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "options", + "docstring": "", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 209 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 146, - "code": "def get_day(self):\n \"\"\"\n Return the day for which this view should display data.\n \"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", - "name": "get_day", - "docstring": "Return the day for which this view should display data.", "klass": [ - "DayMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "patch", + "docstring": "", + "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 218 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 139, - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", "klass": [ - "DayMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 206 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 391, - "code": "def get_form(self, step=None, data=None, files=None):\n \"\"\"\n Constructs the form for a given `step`. If no `step` is defined, the\n current step will be determined automatically.\n The form will be initialized using the `data` argument to prefill the\n new form. If needed, instance or queryset (for `ModelForm` or\n `ModelFormSet`) will be added too.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_class = self.form_list[step]\n # prepare the kwargs for the form instance.\n kwargs = self.get_form_kwargs(step)\n kwargs.update({\n 'data': data,\n 'files': files,\n 'prefix': self.get_form_prefix(step, form_class),\n 'initial': self.get_form_initial(step),\n })\n if issubclass(form_class, (forms.ModelForm, forms.models.BaseInlineFormSet)):\n # If the form is based on ModelForm or InlineFormSet,\n # add instance if available and not previously set.\n kwargs.setdefault('instance', self.get_form_instance(step))\n elif issubclass(form_class, forms.models.BaseModelFormSet):\n # If the form is based on ModelFormSet, add queryset if available\n # and not previous set.\n kwargs.setdefault('queryset', self.get_form_instance(step))\n return form_class(**kwargs)\n", - "name": "get_form", - "docstring": "Constructs the form for a given `step`. If no `step` is defined, the\ncurrent step will be determined automatically.\n\nThe form will be initialized using the `data` argument to prefill the\nnew form. If needed, instance or queryset (for `ModelForm` or\n`ModelFormSet`) will be added too.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "RedirectView", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self, step=None, data=None, files=None" - }, - "model": "cbv.method", - "pk": null + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 215 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 41, - "code": "def get_form(self, form_class):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n return form_class(**self.get_form_kwargs())\n", - "name": "get_form", - "docstring": "Returns an instance of the form to be used in this view.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self, form_class" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "kwargs": "self", + "line_number": 135 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 95, - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n warnings.warn(\"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is deprecated.\" % self.__class__.__name__,\n RemovedInDjango18Warning)\n return model_forms.modelform_factory(model, fields=self.fields)\n", - "name": "get_form_class", - "docstring": "Returns the form class to use in this view.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "render_to_response", + "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 119 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 35, - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", - "name": "get_form_class", - "docstring": "Returns the form class to use in this view", "klass": [ - "FormMixin", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 153 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 368, - "code": "def get_form_initial(self, step):\n \"\"\"\n Returns a dictionary which will be passed to the form for `step`\n as `initial`. If no initial data was provided while initializing the\n form wizard, an empty dictionary will be returned.\n \"\"\"\n return self.initial_dict.get(step, {})\n", - "name": "get_form_initial", - "docstring": "Returns a dictionary which will be passed to the form for `step`\nas `initial`. If no initial data was provided while initializing the\nform wizard, an empty dictionary will be returned.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "View", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "_allowed_methods", + "docstring": "", + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "kwargs": "self", + "line_number": 107 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 376, - "code": "def get_form_instance(self, step):\n \"\"\"\n Returns an object which will be passed to the form for `step`\n as `instance`. If no instance object was provided while initializing\n the form wizard, None will be returned.\n \"\"\"\n return self.instance_dict.get(step, None)\n", - "name": "get_form_instance", - "docstring": "Returns an object which will be passed to the form for `step`\nas `instance`. If no instance object was provided while initializing\nthe form wizard, None will be returned.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "View", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n # sanitize keyword arguments\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 46 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 384, - "code": "def get_form_kwargs(self, step=None):\n \"\"\"\n Returns the keyword arguments for instantiating the form\n (or formset) on the given step.\n \"\"\"\n return {}\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form\n(or formset) on the given step.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "View", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 79 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 47, - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning('Method Not Allowed (%s): %s', request.method, request.path,\n extra={\n 'status_code': 405,\n 'request': request\n }\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 89 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 121, - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", + "kwargs": "self, **kwargs", + "line_number": 36 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 199, - "code": "def get_form_list(self):\n \"\"\"\n This method returns a form_list based on the initial form list but\n checks if there is a condition method/value in the condition_list.\n If an entry exists in the condition list, it will call/read the value\n and respect the result. (True means add the form, False means ignore\n the form)\n The form_list is always generated on the fly because condition methods\n could use data from other (maybe previous forms).\n \"\"\"\n form_list = OrderedDict()\n for form_key, form_class in six.iteritems(self.form_list):\n # try to fetch the value from condition list, by default, the form\n # gets passed to the new list.\n condition = self.condition_dict.get(form_key, True)\n if callable(condition):\n # call the value if needed, passes the current instance.\n condition = condition(self)\n if condition:\n form_list[form_key] = form_class\n return form_list\n", - "name": "get_form_list", - "docstring": "This method returns a form_list based on the initial form list but\nchecks if there is a condition method/value in the condition_list.\nIf an entry exists in the condition list, it will call/read the value\nand respect the result. (True means add the form, False means ignore\nthe form)\n\nThe form_list is always generated on the fly because condition methods\ncould use data from other (maybe previous forms).", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "View", + "django.views.generic.base", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "options", + "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 98 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 355, - "code": "def get_form_prefix(self, step=None, form=None):\n \"\"\"\n Returns the prefix which will be used when calling the actual form for\n the given step. `step` contains the step-name, `form` the form which\n will be called with the returned prefix.\n If no step is given, the form_prefix will determine the current step\n automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n return str(step)\n", - "name": "get_form_prefix", - "docstring": "Returns the prefix which will be used when calling the actual form for\nthe given step. `step` contains the step-name, `form` the form which\nwill be called with the returned prefix.\n\nIf no step is given, the form_prefix will determine the current step\nautomatically.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, step=None, form=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset(ordering='-%s' % self.get_date_field())\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", + "kwargs": "self", + "line_number": 411 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 444, - "code": "def get_form_step_data(self, form):\n \"\"\"\n Is used to return the raw form data. You may use this method to\n manipulate the data.\n \"\"\"\n return form.data\n", - "name": "get_form_step_data", - "docstring": "Is used to return the raw form data. You may use this method to\nmanipulate the data.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = queryset or self.get_queryset()\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 635 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 451, - "code": "def get_form_step_files(self, form):\n \"\"\"\n Is used to return the raw form files. You may use this method to\n manipulate the data.\n \"\"\"\n return form.files\n", - "name": "get_form_step_files", - "docstring": "Is used to return the raw form files. You may use this method to\nmanipulate the data.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 333 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 23, - "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", - "name": "get_initial", - "docstring": "Returns the initial data to use for forms on this view.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Obtain the list of dates and items.", + "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", + "kwargs": "self", + "line_number": 340 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 603, - "code": "@classmethod\ndef get_initkwargs(cls, *args, **kwargs):\n \"\"\"\n We require a url_name to reverse URLs later. Additionally users can\n pass a done_step_name to change the URL name of the \"done\" view.\n \"\"\"\n assert 'url_name' in kwargs, 'URL name is needed to resolve correct wizard URLs'\n extra_kwargs = {\n 'done_step_name': kwargs.pop('done_step_name', 'done'),\n 'url_name': kwargs.pop('url_name'),\n }\n initkwargs = super(NamedUrlWizardView, cls).get_initkwargs(*args, **kwargs)\n initkwargs.update(extra_kwargs)\n assert initkwargs['done_step_name'] not in initkwargs['form_list'], \\\n 'step name \"%s\" is reserved for \"done\" view' % initkwargs['done_step_name']\n return initkwargs\n", - "name": "get_initkwargs", - "docstring": "We require a url_name to reverse URLs later. Additionally users can\npass a done_step_name to change the URL name of the \"done\" view.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "cls, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, ordering=None, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if ordering is not None:\n qs = qs.order_by(ordering)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", + "kwargs": "self, ordering=None, **lookup", + "line_number": 346 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 124, - "code": "@classmethod\ndef get_initkwargs(cls, form_list=None, initial_dict=None,\n instance_dict=None, condition_dict=None, *args, **kwargs):\n \"\"\"\n Creates a dict with all needed parameters for the form wizard instances.\n * `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n * `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n * `instance_dict` - contains a dictionary whose values are model\n instances if the step is based on a ``ModelForm`` and querysets if\n the step is based on a ``ModelFormSet``. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n * `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.\n \"\"\"\n kwargs.update({\n 'initial_dict': initial_dict or kwargs.pop('initial_dict',\n getattr(cls, 'initial_dict', None)) or {},\n 'instance_dict': instance_dict or kwargs.pop('instance_dict',\n getattr(cls, 'instance_dict', None)) or {},\n 'condition_dict': condition_dict or kwargs.pop('condition_dict',\n getattr(cls, 'condition_dict', None)) or {}\n })\n form_list = form_list or kwargs.pop('form_list',\n getattr(cls, 'form_list', None)) or []\n computed_form_list = OrderedDict()\n assert len(form_list) > 0, 'at least one form is needed'\n # walk through the passed form list\n for i, form in enumerate(form_list):\n if isinstance(form, (list, tuple)):\n # if the element is a tuple, add the tuple to the new created\n # sorted dictionary.\n computed_form_list[six.text_type(form[0])] = form[1]\n else:\n # if not, add the form with a zero based counter as unicode\n computed_form_list[six.text_type(i)] = form\n # walk through the new created list of forms\n for form in six.itervalues(computed_form_list):\n if issubclass(form, formsets.BaseFormSet):\n # if the element is based on BaseFormSet (FormSet/ModelFormSet)\n # we need to override the form variable.\n form = form.form\n # check if any form contains a FileField, if yes, we need a\n # file_storage added to the wizardview (by subclassing).\n for field in six.itervalues(form.base_fields):\n if (isinstance(field, forms.FileField) and\n not hasattr(cls, 'file_storage')):\n raise NoFileStorageConfigured(\n \"You need to define 'file_storage' in your \"\n \"wizard view in order to handle file uploads.\")\n # build the kwargs for the wizardview instances\n kwargs['form_list'] = computed_form_list\n return kwargs\n", - "name": "get_initkwargs", - "docstring": "Creates a dict with all needed parameters for the form wizard instances.\n\n* `form_list` - is a list of forms. The list entries can be single form\n classes or tuples of (`step_name`, `form_class`). If you pass a list\n of forms, the wizardview will convert the class list to\n (`zero_based_counter`, `form_class`). This is needed to access the\n form for a specific step.\n* `initial_dict` - contains a dictionary of initial data dictionaries.\n The key should be equal to the `step_name` in the `form_list` (or\n the str of the zero based counter - if no step_names added in the\n `form_list`)\n* `instance_dict` - contains a dictionary whose values are model\n instances if the step is based on a ``ModelForm`` and querysets if\n the step is based on a ``ModelFormSet``. The key should be equal to\n the `step_name` in the `form_list`. Same rules as for `initial_dict`\n apply.\n* `condition_dict` - contains a dictionary of boolean values or\n callables. If the value of for a specific `step_name` is callable it\n will be called with the wizardview instance as the only argument.\n If the return value is true, the step's form will be used.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "cls, form_list=None, initial_dict=None, instance_dict=None, condition_dict=None, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", + "kwargs": "self, queryset, date_type=None, ordering=u'ASC'", + "line_number": 381 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 468, - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", "klass": [ - "BaseYearArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_date_list_period", + "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", + "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", + "kwargs": "self", + "line_number": 375 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 87, - "code": "def get_month(self):\n \"\"\"\n Return the month for which this view should display data.\n \"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", - "name": "get_month", - "docstring": "Return the month for which this view should display data.", "klass": [ - "MonthMixin", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 587 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 80, - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", "klass": [ - "MonthMixin", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", + "kwargs": "self", + "line_number": 573 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 173, - "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", - "name": "_get_next_day", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", "klass": [ - "DayMixin", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", + "kwargs": "self", + "line_number": 489 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 161, - "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", - "name": "get_next_day", - "docstring": "Get the next valid day.", "klass": [ - "DayMixin", + "BaseTodayArchiveView", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", + "kwargs": "self", + "line_number": 616 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 114, - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n return date.replace(year=date.year + 1, month=1, day=1)\n else:\n return date.replace(month=date.month + 1, day=1)\n", - "name": "_get_next_month", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", "klass": [ - "MonthMixin", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", + "kwargs": "self", + "line_number": 529 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 102, - "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", - "name": "get_next_month", - "docstring": "Get the next valid month.", "klass": [ - "MonthMixin", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(ordering='-%s' % date_field, **lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", + "kwargs": "self", + "line_number": 438 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 494, - "code": "def get_next_step(self, step=None):\n \"\"\"\n Returns the next step after the given `step`. If no more steps are\n available, None will be returned. If the `step` argument is None, the\n current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n keys = list(form_list.keys())\n key = keys.index(step) + 1\n if len(keys) > key:\n return keys[key]\n return None\n", - "name": "get_next_step", - "docstring": "Returns the next step after the given `step`. If no more steps are\navailable, None will be returned. If the `step` argument is None, the\ncurrent step will be determined automatically.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", + "kwargs": "self", + "line_number": 468 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 229, - "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n", - "name": "_get_next_week", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", "klass": [ - "WeekMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_allow_future", + "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", + "kwargs": "self", + "line_number": 273 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 217, - "code": "def get_next_week(self, date):\n \"\"\"\n Get the next valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", - "name": "get_next_week", - "docstring": "Get the next valid week.", "klass": [ - "WeekMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", + "kwargs": "self", + "line_number": 265 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 58, - "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date.replace(year=date.year + 1, month=1, day=1)\n", - "name": "_get_next_year", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", "klass": [ - "YearMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", + "kwargs": "self, value", + "line_number": 293 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 46, - "code": "def get_next_year(self, date):\n \"\"\"\n Get the next valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", - "name": "get_next_year", - "docstring": "Get the next valid year.", "klass": [ - "YearMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", + "kwargs": "self, date", + "line_number": 306 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 635, - "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = queryset or self.get_queryset()\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\"Future %(verbose_name_plural)s not available because %(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", - "name": "get_object", - "docstring": "Get the object this request displays.", "klass": [ - "BaseDateDetailView", + "DayMixin", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, queryset=None" - }, - "model": "cbv.method", - "pk": null + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", + "kwargs": "self, date", + "line_number": 181 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 21, - "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg, None)\n slug = self.kwargs.get(self.slug_url_kwarg, None)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n elif slug is not None:\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n else:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "name": "get_object", - "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, queryset=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_day", + "docstring": "Return the day for which this view should display data.", + "code": "def get_day(self):\n \"\"\"\n Return the day for which this view should display data.\n \"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "kwargs": "self", + "line_number": 146 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 72, - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, queryset" - }, - "model": "cbv.method", - "pk": null + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", + "kwargs": "self", + "line_number": 139 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 87, - "code": "def get_paginate_orphans(self):\n \"\"\"\n Returns the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", - "name": "get_paginate_orphans", - "docstring": "Returns the maximum number of orphans extend the last page by when\npaginating.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "_get_next_day", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", + "kwargs": "self, date", + "line_number": 173 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 78, - "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "kwargs": "self, date", + "line_number": 161 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 195, - "code": "def get_prefix(self, *args, **kwargs):\n # TODO: Add some kind of unique id to prefix\n return normalize_name(self.__class__.__name__)\n", - "name": "get_prefix", - "docstring": "", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "DayMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "kwargs": "self, date", + "line_number": 167 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 29, - "code": "def get_prefix(self):\n \"\"\"\n Returns the prefix to use for forms on this view\n \"\"\"\n return self.prefix\n", - "name": "get_prefix", - "docstring": "Returns the prefix to use for forms on this view", "klass": [ - "FormMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self" - }, + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", + "kwargs": "self, date", + "line_number": 125 + } +}, +{ "model": "cbv.method", - "pk": null + "pk": null, + "fields": { + "klass": [ + "MonthMixin", + "django.views.generic.dates", + "Django", + "1.7" + ], + "name": "get_month", + "docstring": "Return the month for which this view should display data.", + "code": "def get_month(self):\n \"\"\"\n Return the month for which this view should display data.\n \"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "kwargs": "self", + "line_number": 87 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 167, - "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", - "name": "get_previous_day", - "docstring": "Get the previous valid day.", "klass": [ - "DayMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, date" - }, + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "kwargs": "self", + "line_number": 80 + } +}, +{ "model": "cbv.method", - "pk": null + "pk": null, + "fields": { + "klass": [ + "MonthMixin", + "django.views.generic.dates", + "Django", + "1.7" + ], + "name": "_get_next_month", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n return date.replace(year=date.year + 1, month=1, day=1)\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "kwargs": "self, date", + "line_number": 114 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 108, - "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", - "name": "get_previous_month", - "docstring": "Get the previous valid month.", "klass": [ "MonthMixin", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, date" - }, + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "kwargs": "self, date", + "line_number": 102 + } +}, +{ "model": "cbv.method", - "pk": null + "pk": null, + "fields": { + "klass": [ + "MonthMixin", + "django.views.generic.dates", + "Django", + "1.7" + ], + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "kwargs": "self, date", + "line_number": 108 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 223, - "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", - "name": "get_previous_week", - "docstring": "Get the previous valid week.", "klass": [ "WeekMixin", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", + "kwargs": "self, date", + "line_number": 237 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 52, - "code": "def get_previous_year(self, date):\n \"\"\"\n Get the previous valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", - "name": "get_previous_year", - "docstring": "Get the previous valid year.", "klass": [ - "YearMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "_get_next_week", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n", + "kwargs": "self, date", + "line_number": 229 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 509, - "code": "def get_prev_step(self, step=None):\n \"\"\"\n Returns the previous step before the given `step`. If there are no\n steps available, None will be returned. If the `step` argument is\n None, the current step will be determined automatically.\n \"\"\"\n if step is None:\n step = self.steps.current\n form_list = self.get_form_list()\n keys = list(form_list.keys())\n key = keys.index(step) - 1\n if key >= 0:\n return keys[key]\n return None\n", - "name": "get_prev_step", - "docstring": "Returns the previous step before the given `step`. If there are no\nsteps available, None will be returned. If the `step` argument is\nNone, the current step will be determined automatically.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "WeekMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_week", + "docstring": "Get the next valid week.", + "code": "def get_next_week(self, date):\n \"\"\"\n Get the next valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "kwargs": "self, date", + "line_number": 217 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 58, - "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n Note that this method is called by the default implementation of\n `get_object` and may not be called if `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", - "name": "get_queryset", - "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nNote that this method is called by the default implementation of\n`get_object` and may not be called if `get_object` is overridden.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WeekMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "kwargs": "self, date", + "line_number": 223 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 24, - "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return queryset\n", - "name": "get_queryset", - "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_week", + "docstring": "Return the week for which this view should display data", + "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", + "kwargs": "self", + "line_number": 202 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 167, - "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n try:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n except NoReverseMatch:\n return None\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", "klass": [ - "RedirectView", - "django.views.generic.base", + "WeekMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", + "kwargs": "self, date", + "line_number": 243 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 78, - "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WeekMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "kwargs": "self", + "line_number": 195 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 524, - "code": "def get_step_index(self, step=None):\n \"\"\"\n Returns the index for the given `step` name. If no step is given,\n the current step will be used to get the index.\n \"\"\"\n if step is None:\n step = self.steps.current\n return list(self.get_form_list().keys()).index(step)\n", - "name": "get_step_index", - "docstring": "Returns the index for the given `step` name. If no step is given,\nthe current step will be used to get the index.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, step=None" - }, - "model": "cbv.method", - "pk": null + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", + "kwargs": "self, date", + "line_number": 66 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 621, - "code": "def get_step_url(self, step):\n return reverse(self.url_name, kwargs={'step': step})\n", - "name": "get_step_url", - "docstring": "", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self, step" - }, - "model": "cbv.method", - "pk": null + "name": "_get_next_year", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date.replace(year=date.year + 1, month=1, day=1)\n", + "kwargs": "self, date", + "line_number": 58 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 261, - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url % self.object.__dict__\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", - "name": "get_success_url", - "docstring": "", "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_next_year", + "docstring": "Get the next valid year.", + "code": "def get_next_year(self, date):\n \"\"\"\n Get the next valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", + "kwargs": "self, date", + "line_number": 46 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 63, - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", - "name": "get_success_url", - "docstring": "Returns the supplied success URL.", "klass": [ - "FormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_previous_year", + "docstring": "Get the previous valid year.", + "code": "def get_previous_year(self, date):\n \"\"\"\n Get the previous valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", + "kwargs": "self, date", + "line_number": 52 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 130, - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n url = self.success_url % self.object.__dict__\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", - "name": "get_success_url", - "docstring": "Returns the supplied URL.", "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "kwargs": "self", + "line_number": 31 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 170, - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", + "kwargs": "self", + "line_number": 24 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 135, - "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "name": "get_template_names", - "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 113 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 123, - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.object._meta.app_label,\n self.object._meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 95 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 202, - "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", - "name": "get_week", - "docstring": "Return the week for which this view should display data", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 84 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 243, - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "get_object", + "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg, None)\n slug = self.kwargs.get(self.slug_url_kwarg, None)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n elif slug is not None:\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n else:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 21 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 195, - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", "klass": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_queryset", + "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nNote that this method is called by the default implementation of\n`get_object` and may not be called if `get_object` is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n Note that this method is called by the default implementation of\n `get_object` and may not be called if `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", + "kwargs": "self", + "line_number": 58 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 31, - "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", - "name": "get_year", - "docstring": "Return the year for which this view should display data.", "klass": [ - "YearMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", + "kwargs": "self", + "line_number": 78 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 24, - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", "klass": [ - "YearMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.object._meta.app_label,\n self.object._meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", + "kwargs": "self", + "line_number": 123 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 203, - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "head", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 201 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 89, - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning('Method Not Allowed (%s): %s', request.method, request.path,\n extra={\n 'status_code': 405,\n 'request': request\n }\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", - "name": "http_method_not_allowed", - "docstring": "", "klass": [ - "View", - "django.views.generic.base", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 205 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 34, - "code": "def __init__(self, wizard):\n self._wizard = wizard\n", - "name": "__init__", - "docstring": "", "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, wizard" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 224 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 36, - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", "klass": [ - "View", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 228 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 40, - "code": "def __len__(self):\n return self.count\n", - "name": "__len__", - "docstring": "", "klass": [ - "StepsHelper", - "django.contrib.formtools.wizard.views", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "name": "delete", + "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 247 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 293, - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, value" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url % self.object.__dict__\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", + "kwargs": "self", + "line_number": 261 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 306, - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", "klass": [ - "DateMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, date" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 258 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 98, - "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", - "name": "options", - "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", "klass": [ - "View", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "form_invalid", + "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", + "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 81 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 209, - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "options", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 75 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 47, - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, queryset, page_size" - }, - "model": "cbv.method", - "pk": null + "name": "get_form", + "docstring": "Returns an instance of the form to be used in this view.", + "code": "def get_form(self, form_class):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class", + "line_number": 41 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 218, - "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "patch", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_class", + "docstring": "Returns the form class to use in this view", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", + "kwargs": "self", + "line_number": 35 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 206, - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "kwargs": "self", + "line_number": 47 + } }, { - "fields": { - "line_number": 205, - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", + "model": "cbv.method", + "pk": null, + "fields": { "klass": [ - "BaseCreateView", + "FormMixin", "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_initial", + "docstring": "Returns the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", + "kwargs": "self", + "line_number": 23 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 257, - "code": "def post(self, *args, **kwargs):\n \"\"\"\n This method handles POST requests.\n The wizard will render either the current step (if form validation\n wasn't successful), the next step (if the current step was stored\n successful) or the done view (if no more steps are available)\n \"\"\"\n # Look for a wizard_goto_step element in the posted data which\n # contains a valid step name. If one was found, render the requested\n # form. (This makes stepping back a lot easier).\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n return self.render_goto_step(wizard_goto_step)\n # Check if form was refreshed\n management_form = ManagementForm(self.request.POST, prefix=self.prefix)\n if not management_form.is_valid():\n raise ValidationError(\n _('ManagementForm data is missing or has been tampered.'),\n code='missing_management_form',\n )\n form_current_step = management_form.cleaned_data['current_step']\n if (form_current_step != self.steps.current and\n self.storage.current_step is not None):\n # form refreshed, change current step\n self.storage.current_step = form_current_step\n # get the form for the current step\n form = self.get_form(data=self.request.POST, files=self.request.FILES)\n # and try to validate\n if form.is_valid():\n # if the form is valid, store the cleaned data and files.\n self.storage.set_step_data(self.steps.current, self.process_step(form))\n self.storage.set_step_files(self.steps.current, self.process_step_files(form))\n # check if the current step is the last step\n if self.steps.current == self.steps.last:\n # no more steps, render done view\n return self.render_done(form, **kwargs)\n else:\n # proceed to the next step\n return self.render_next_step(form)\n return self.render(form)\n", - "name": "post", - "docstring": "This method handles POST requests.\n\nThe wizard will render either the current step (if form validation\nwasn't successful), the next step (if the current step was stored\nsuccessful) or the done view (if no more steps are available)", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "FormMixin", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_prefix", + "docstring": "Returns the prefix to use for forms on this view", + "code": "def get_prefix(self):\n \"\"\"\n Returns the prefix to use for forms on this view\n \"\"\"\n return self.prefix\n", + "kwargs": "self", + "line_number": 29 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 228, - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "BaseUpdateView", + "FormMixin", "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "Returns the supplied success URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", + "kwargs": "self", + "line_number": 63 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 165, - "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", "klass": [ - "ProcessFormView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", + "kwargs": "self, form", + "line_number": 145 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 258, - "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", - "name": "post", - "docstring": "", "klass": [ - "DeletionMixin", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_class", + "docstring": "Returns the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n warnings.warn(\"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is deprecated.\" % self.__class__.__name__,\n RemovedInDjango18Warning)\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "kwargs": "self", + "line_number": 95 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 669, - "code": "def post(self, *args, **kwargs):\n \"\"\"\n Do a redirect if user presses the prev. step button. The rest of this\n is super'd from WizardView.\n \"\"\"\n wizard_goto_step = self.request.POST.get('wizard_goto_step', None)\n if wizard_goto_step and wizard_goto_step in self.get_form_list():\n return self.render_goto_step(wizard_goto_step)\n return super(NamedUrlWizardView, self).post(*args, **kwargs)\n", - "name": "post", - "docstring": "Do a redirect if user presses the prev. step button. The rest of this\nis super'd from WizardView.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 121 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 421, - "code": "def process_step(self, form):\n \"\"\"\n This method is used to postprocess the form data. By default, it\n returns the raw `form.data` dictionary.\n \"\"\"\n return self.get_form_step_data(form)\n", - "name": "process_step", - "docstring": "This method is used to postprocess the form data. By default, it\nreturns the raw `form.data` dictionary.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get_success_url", + "docstring": "Returns the supplied URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n url = self.success_url % self.object.__dict__\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 130 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 428, - "code": "def process_step_files(self, form):\n \"\"\"\n This method is used to postprocess the form files. By default, it\n returns the raw `form.files` dictionary.\n \"\"\"\n return self.get_form_step_files(form)\n", - "name": "process_step_files", - "docstring": "This method is used to postprocess the form files. By default, it\nreturns the raw `form.files` dictionary.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, form" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 157 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 179, - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "name": "put", - "docstring": "", "klass": [ "ProcessFormView", "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form_class = self.get_form_class()\n form = self.get_form(form_class)\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 165 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 215, - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "name": "put", - "docstring": "", "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.7" ], - "kwargs": "self, request, *args, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "put", + "docstring": "", + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 179 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 565, - "code": "def render(self, form=None, **kwargs):\n \"\"\"\n Returns a ``HttpResponse`` containing all needed context data.\n \"\"\"\n form = form or self.get_form()\n context = self.get_context_data(form=form, **kwargs)\n return self.render_to_response(context)\n", - "name": "render", - "docstring": "Returns a ``HttpResponse`` containing all needed context data.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "BaseListView", + "django.views.generic.list", "Django", "1.7" ], - "kwargs": "self, form=None, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if (self.get_paginate_by(self.object_list) is not None\n and hasattr(self.object_list, 'exists')):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data()\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 144 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 713, - "code": "def render_done(self, form, **kwargs):\n \"\"\"\n When rendering the done view, we have to redirect first (if the URL\n name doesn't fit).\n \"\"\"\n if kwargs.get('step', None) != self.done_step_name:\n return redirect(self.get_step_url(self.done_step_name))\n return super(NamedUrlWizardView, self).render_done(form, **kwargs)\n", - "name": "render_done", - "docstring": "When rendering the done view, we have to redirect first (if the URL\nname doesn't fit).", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_allow_empty", + "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 94 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 331, - "code": "def render_done(self, form, **kwargs):\n \"\"\"\n This method gets called when all forms passed. The method should also\n re-validate all steps to prevent manipulation. If any form fails to\n validate, `render_revalidation_failure` should get called.\n If everything is fine call `done`.\n \"\"\"\n final_forms = OrderedDict()\n # walk through the form list and try to validate the data again.\n for form_key in self.get_form_list():\n form_obj = self.get_form(step=form_key,\n data=self.storage.get_step_data(form_key),\n files=self.storage.get_step_files(form_key))\n if not form_obj.is_valid():\n return self.render_revalidation_failure(form_key, form_obj, **kwargs)\n final_forms[form_key] = form_obj\n # render the done view and reset the wizard before returning the\n # response. This is needed to prevent from rendering done with the\n # same data twice.\n done_response = self.done(final_forms.values(), form_dict=final_forms, **kwargs)\n self.storage.reset()\n return done_response\n", - "name": "render_done", - "docstring": "This method gets called when all forms passed. The method should also\nre-validate all steps to prevent manipulation. If any form fails to\nvalidate, `render_revalidation_failure` should get called.\nIf everything is fine call `done`.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list', self.object_list)\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 112 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 697, - "code": "def render_goto_step(self, goto_step, **kwargs):\n \"\"\"\n This method gets called when the current step has to be changed.\n `goto_step` contains the requested step to go to.\n \"\"\"\n self.storage.current_step = goto_step\n return redirect(self.get_step_url(goto_step))\n", - "name": "render_goto_step", - "docstring": "This method gets called when the current step has to be changed.\n`goto_step` contains the requested step to go to.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], - "kwargs": "self, goto_step, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 101 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 320, - "code": "def render_goto_step(self, goto_step, **kwargs):\n \"\"\"\n This method gets called when the current step has to be changed.\n `goto_step` contains the requested step to go to.\n \"\"\"\n self.storage.current_step = goto_step\n form = self.get_form(\n data=self.storage.get_step_data(self.steps.current),\n files=self.storage.get_step_files(self.steps.current))\n return self.render(form)\n", - "name": "render_goto_step", - "docstring": "This method gets called when the current step has to be changed.\n`goto_step` contains the requested step to go to.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], - "kwargs": "self, goto_step, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 72 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 688, - "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n When using the NamedUrlWizardView, we have to redirect to update the\n browser's URL to match the shown step.\n \"\"\"\n next_step = self.get_next_step()\n self.storage.current_step = next_step\n return redirect(self.get_step_url(next_step))\n", - "name": "render_next_step", - "docstring": "When using the NamedUrlWizardView, we have to redirect to update the\nbrowser's URL to match the shown step.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_paginate_orphans", + "docstring": "Returns the maximum number of orphans extend the last page by when\npaginating.", + "code": "def get_paginate_orphans(self):\n \"\"\"\n Returns the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "kwargs": "self", + "line_number": 87 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 304, - "code": "def render_next_step(self, form, **kwargs):\n \"\"\"\n This method gets called when the next step/form should be rendered.\n `form` contains the last/current form.\n \"\"\"\n # get the form instance based on the data from the storage backend\n # (if available).\n next_step = self.steps.next\n new_form = self.get_form(next_step,\n data=self.storage.get_step_data(next_step),\n files=self.storage.get_step_files(next_step))\n # change the stored current step\n self.storage.current_step = next_step\n return self.render(new_form, **kwargs)\n", - "name": "render_next_step", - "docstring": "This method gets called when the next step/form should be rendered.\n`form` contains the last/current form.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], - "kwargs": "self, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", + "line_number": 78 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 435, - "code": "def render_revalidation_failure(self, step, form, **kwargs):\n \"\"\"\n Gets called when a form doesn't validate when rendering the done\n view. By default, it changes the current step to failing forms step\n and renders the form.\n \"\"\"\n self.storage.current_step = step\n return self.render(form, **kwargs)\n", - "name": "render_revalidation_failure", - "docstring": "Gets called when a form doesn't validate when rendering the done\nview. By default, it changes the current step to failing forms step\nand renders the form.", "klass": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], - "kwargs": "self, step, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_queryset", + "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", + "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return queryset\n", + "kwargs": "self", + "line_number": 24 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 705, - "code": "def render_revalidation_failure(self, failed_step, form, **kwargs):\n \"\"\"\n When a step fails, we have to redirect the user to the first failing\n step.\n \"\"\"\n self.storage.current_step = failed_step\n return redirect(self.get_step_url(failed_step))\n", - "name": "render_revalidation_failure", - "docstring": "When a step fails, we have to redirect the user to the first failing\nstep.", "klass": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], - "kwargs": "self, failed_step, form, **kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 47 + } }, { + "model": "cbv.method", + "pk": null, "fields": { - "line_number": 119, - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n **response_kwargs\n )\n", - "name": "render_to_response", - "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.7" ], - "kwargs": "self, context, **response_kwargs" - }, - "model": "cbv.method", - "pk": null + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", + "kwargs": "self", + "line_number": 170 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "line_number": 43, - "code": "def __repr__(self):\n return '' % (self._wizard, self.all)\n", - "name": "__repr__", - "docstring": "", - "klass": [ - "StepsHelper", + "parent": [ + "WizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "child": [ + "CookieWizardView", + "django.contrib.formtools.wizard.views", + "Django", + "1.7" + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "line_number": 111, - "code": "def __repr__(self):\n return '<%s: forms: %s>' % (self.__class__.__name__, self.form_list)\n", - "name": "__repr__", - "docstring": "", - "klass": [ - "WizardView", + "parent": [ + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", + "Django", + "1.7" + ], + "child": [ + "NamedUrlCookieWizardView", "django.contrib.formtools.wizard.views", "Django", "1.7" ], - "kwargs": "self" - }, - "model": "cbv.method", - "pk": null + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], "child": [ - "CreateView", - "django.views.generic.edit", + "NamedUrlSessionWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "NamedUrlWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" ], "child": [ - "DetailView", - "django.views.generic.detail", + "SessionWizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "1.7" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "WizardView", + "django.contrib.formtools.wizard.views", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", + "View", "django.views.generic.base", "Django", "1.7" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.7" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "ContextMixin", + "django.views.generic.base", "Django", "1.7" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", + "View", "django.views.generic.base", "Django", "1.7" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.7" ], "child": [ - "SessionWizardView", - "django.contrib.formtools.wizard.views", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "FormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MonthMixin", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "DayMixin", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "CookieWizardView", - "django.contrib.formtools.wizard.views", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "BaseDateListView", + "DateMixin", "django.views.generic.dates", "Django", "1.7" ], "child": [ - "BaseArchiveIndexView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 3 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.7" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 4 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DateMixin", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "FormView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ContextMixin", + "View", "django.views.generic.base", "Django", "1.7" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "YearMixin", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "NamedUrlSessionWizardView", - "django.contrib.formtools.wizard.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "NamedUrlWizardView", - "django.contrib.formtools.wizard.views", + "MonthMixin", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "NamedUrlCookieWizardView", - "django.contrib.formtools.wizard.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "ArchiveIndexView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "YearArchiveView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 3 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "MonthArchiveView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "WeekArchiveView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "DayArchiveView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.7" ], "child": [ - "BaseMonthArchiveView", + "BaseTodayArchiveView", "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ "YearMixin", "django.views.generic.dates", @@ -5270,52 +5248,52 @@ "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.7" ], "child": [ - "BaseDayArchiveView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "YearMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "1.7" ], "child": [ - "BaseDateDetailView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 2 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ "YearMixin", "django.views.generic.dates", @@ -5327,71 +5305,71 @@ "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "View", - "django.views.generic.base", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "RedirectView", - "django.views.generic.base", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.7" ], "child": [ - "BaseDateListView", + "DateDetailView", "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "BaseListView", - "django.views.generic.list", + "DateDetailView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ "MultipleObjectTemplateResponseMixin", "django.views.generic.list", @@ -5399,211 +5377,192 @@ "1.7" ], "child": [ - "ListView", - "django.views.generic.list", - "Django", - "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null -}, -{ - "fields": { - "order": 0, - "parent": [ - "View", - "django.views.generic.base", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.7" ], - "child": [ - "ProcessFormView", - "django.views.generic.edit", - "Django", - "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ContextMixin", - "django.views.generic.base", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateView", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.7" ], "child": [ - "WizardView", - "django.contrib.formtools.wizard.views", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "BaseDayArchiveView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.7" ], "child": [ - "BaseTodayArchiveView", + "MonthArchiveView", "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "ContextMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.7" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "TemplateView", - "django.views.generic.base", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 0, "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.7" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDayArchiveView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.7" ], "child": [ - "DayArchiveView", + "WeekArchiveView", "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ContextMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.7" ], "child": [ - "TemplateView", - "django.views.generic.base", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "View", - "django.views.generic.base", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.7" ], "child": [ - "BaseListView", - "django.views.generic.list", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "View", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.7" ], @@ -5612,378 +5571,359 @@ "django.views.generic.detail", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null -}, -{ - "fields": { - "order": 1, - "parent": [ - "MonthMixin", - "django.views.generic.dates", - "Django", - "1.7" ], - "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", - "Django", - "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.7" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.7" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.7" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.7" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.7" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.7" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "WeekMixin", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.7" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "DateMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.7" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.7" ], "child": [ - "WeekArchiveView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.7" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.7" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.7" ], "child": [ - "ModelFormMixin", + "BaseUpdateView", "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.7" ], "child": [ - "BaseDeleteView", + "BaseUpdateView", "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDetailView", + "SingleObjectTemplateResponseMixin", "django.views.generic.detail", "Django", "1.7" ], "child": [ - "DetailView", - "django.views.generic.detail", + "CreateView", + "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", + "BaseCreateView", "django.views.generic.edit", "Django", "1.7" ], "child": [ - "BaseCreateView", + "CreateView", "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.7" ], "child": [ - "BaseUpdateView", + "DeleteView", "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "ProcessFormView", + "BaseDeleteView", "django.views.generic.edit", "Django", "1.7" ], "child": [ - "BaseFormView", + "DeleteView", "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseUpdateView", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "1.7" ], "child": [ - "UpdateView", + "FormMixin", "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseFormView", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.7" ], @@ -5992,237 +5932,236 @@ "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseDeleteView", + "BaseFormView", "django.views.generic.edit", "Django", "1.7" ], "child": [ - "DeleteView", + "FormView", "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseCreateView", + "FormMixin", "django.views.generic.edit", "Django", "1.7" ], "child": [ - "CreateView", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 1, "parent": [ - "BaseListView", - "django.views.generic.list", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.7" ], "child": [ - "ListView", - "django.views.generic.list", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.7" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "View", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.7" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "DayMixin", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.7" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" ], "child": [ - "TemplateView", - "django.views.generic.base", + "BaseListView", + "django.views.generic.list", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.7" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 2, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.7" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 3, "parent": [ - "DateMixin", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.7" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 1 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 3, "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.7" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } }, { + "model": "cbv.inheritance", + "pk": null, "fields": { - "order": 4, "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.7" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.7" - ] - }, - "model": "cbv.inheritance", - "pk": null + ], + "order": 0 + } } ] diff --git a/cbv/fixtures/1.8.json b/cbv/fixtures/1.8.json index 89369224..837e0dbb 100644 --- a/cbv/fixtures/1.8.json +++ b/cbv/fixtures/1.8.json @@ -9,6 +9,18 @@ "sortable_version_number": "010819" } }, +{ + "model": "cbv.module", + "fields": { + "project_version": [ + "Django", + "1.8" + ], + "name": "django.contrib.auth.views", + "docstring": "", + "filename": "/django/contrib/auth/views.py" + } +}, { "model": "cbv.module", "fields": { @@ -81,18 +93,6 @@ "filename": "/django/views/generic/list.py" } }, -{ - "model": "cbv.module", - "fields": { - "project_version": [ - "Django", - "1.8" - ], - "name": "django.contrib.auth.views", - "docstring": "", - "filename": "/django/contrib/auth/views.py" - } -}, { "model": "cbv.klass", "fields": { @@ -803,13 +803,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.8" ], - "name": "__abstractmethods__", - "value": "", + "name": "args", + "value": "", "line_number": -1 } }, @@ -818,13 +818,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "1.8" ], - "name": "allow_empty", - "value": "True", + "name": "__cause__", + "value": "", "line_number": -1 } }, @@ -833,13 +833,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.8" ], - "name": "allow_empty", - "value": "False", + "name": "__context__", + "value": "", "line_number": -1 } }, @@ -848,13 +848,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.8" ], - "name": "allow_future", - "value": "False", + "name": "__delattr__", + "value": "", "line_number": -1 } }, @@ -868,8 +868,8 @@ "Django", "1.8" ], - "name": "args", - "value": "", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -878,13 +878,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.8" ], - "name": "__base__", - "value": "", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -893,13 +893,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.8" ], - "name": "__bases__", - "value": "(,)", + "name": "__reduce__", + "value": "", "line_number": -1 } }, @@ -908,13 +908,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.8" ], - "name": "__basicsize__", - "value": "864", + "name": "__repr__", + "value": "", "line_number": -1 } }, @@ -923,13 +923,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.8" ], - "name": "__call__", - "value": "", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -943,8 +943,8 @@ "Django", "1.8" ], - "name": "__cause__", - "value": "", + "name": "__setstate__", + "value": "", "line_number": -1 } }, @@ -953,13 +953,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "1.8" ], - "name": "content_type", - "value": "None", + "name": "__str__", + "value": "", "line_number": -1 } }, @@ -973,8 +973,8 @@ "Django", "1.8" ], - "name": "__context__", - "value": "", + "name": "__suppress_context__", + "value": "", "line_number": -1 } }, @@ -983,13 +983,13 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.8" ], - "name": "context_object_name", - "value": "'latest'", + "name": "__traceback__", + "value": "", "line_number": -1 } }, @@ -998,13 +998,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "1.8" ], - "name": "context_object_name", - "value": "None", + "name": "with_traceback", + "value": "", "line_number": -1 } }, @@ -1013,12 +1013,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "1.8" ], - "name": "context_object_name", + "name": "pattern_name", "value": "None", "line_number": -1 } @@ -1028,13 +1028,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.8" ], - "name": "date_field", - "value": "None", + "name": "permanent", + "value": "", "line_number": -1 } }, @@ -1043,13 +1043,13 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.8" ], - "name": "date_list_period", - "value": "'day'", + "name": "query_string", + "value": "False", "line_number": -1 } }, @@ -1058,13 +1058,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.8" ], - "name": "date_list_period", - "value": "'month'", + "name": "url", + "value": "None", "line_number": -1 } }, @@ -1073,13 +1073,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.8" ], - "name": "date_list_period", - "value": "'year'", + "name": "content_type", + "value": "None", "line_number": -1 } }, @@ -1088,14 +1088,14 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.8" ], - "name": "day", - "value": "None", - "line_number": -1 + "name": "response_class", + "value": "", + "line_number": 190 } }, { @@ -1103,13 +1103,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.8" ], - "name": "day_format", - "value": "'%d'", + "name": "template_engine", + "value": "None", "line_number": -1 } }, @@ -1118,13 +1118,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.8" ], - "name": "__delattr__", - "value": "", + "name": "template_name", + "value": "None", "line_number": -1 } }, @@ -1133,13 +1133,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.8" ], - "name": "__delattr__", - "value": "", + "name": "http_method_names", + "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", "line_number": -1 } }, @@ -1148,13 +1148,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "__dictoffset__", - "value": "264", + "name": "template_name_suffix", + "value": "'_archive'", "line_number": -1 } }, @@ -1163,13 +1163,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "__dir__", - "value": "", + "name": "context_object_name", + "value": "'latest'", "line_number": -1 } }, @@ -1178,13 +1178,13 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "fields", - "value": "None", + "name": "allow_empty", + "value": "False", "line_number": -1 } }, @@ -1193,13 +1193,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "__flags__", - "value": "2148292097", + "name": "date_list_period", + "value": "'year'", "line_number": -1 } }, @@ -1208,13 +1208,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "form_class", - "value": "None", + "name": "date_list_period", + "value": "'day'", "line_number": -1 } }, @@ -1223,13 +1223,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "__getattribute__", - "value": "", + "name": "date_list_period", + "value": "'month'", "line_number": -1 } }, @@ -1238,13 +1238,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "__getattribute__", - "value": "", + "name": "make_object_list", + "value": "False", "line_number": -1 } }, @@ -1253,43 +1253,13 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "DateMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "http_method_names", - "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "GenericViewError", - "django.views.generic", - "Django", - "1.8" - ], - "name": "__init__", - "value": "", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "FormMixinBase", - "django.views.generic.edit", - "Django", - "1.8" - ], - "name": "__init__", - "value": "", + "name": "allow_future", + "value": "False", "line_number": -1 } }, @@ -1298,13 +1268,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "initial", - "value": "{}", + "name": "date_field", + "value": "None", "line_number": -1 } }, @@ -1313,13 +1283,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "__instancecheck__", - "value": "", + "name": "uses_datetime_field", + "value": "", "line_number": -1 } }, @@ -1328,13 +1298,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "__itemsize__", - "value": "40", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -1343,13 +1313,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", + "DayMixin", "django.views.generic.dates", "Django", "1.8" ], - "name": "make_object_list", - "value": "False", + "name": "day", + "value": "None", "line_number": -1 } }, @@ -1358,13 +1328,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "model", - "value": "None", + "name": "day_format", + "value": "'%d'", "line_number": -1 } }, @@ -1373,13 +1343,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "model", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_month'", "line_number": -1 } }, @@ -1418,13 +1388,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "mro", - "value": "", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -1433,13 +1403,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "__mro__", - "value": "(, , )", + "name": "template_name_suffix", + "value": "'_archive_week'", "line_number": -1 } }, @@ -1448,12 +1418,12 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "ordering", + "name": "week", "value": "None", "line_number": -1 } @@ -1463,13 +1433,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "page_kwarg", - "value": "'page'", + "name": "week_format", + "value": "'%U'", "line_number": -1 } }, @@ -1478,13 +1448,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "paginate_by", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_year'", "line_number": -1 } }, @@ -1493,13 +1463,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "paginate_orphans", - "value": "0", + "name": "year", + "value": "None", "line_number": -1 } }, @@ -1508,14 +1478,14 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "paginator_class", - "value": "", - "line_number": 19 + "name": "year_format", + "value": "'%Y'", + "line_number": -1 } }, { @@ -1523,12 +1493,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.8" ], - "name": "pattern_name", + "name": "context_object_name", "value": "None", "line_number": -1 } @@ -1538,13 +1508,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.8" ], - "name": "permanent", - "value": "", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -1568,13 +1538,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.8" ], - "name": "prefix", - "value": "None", + "name": "query_pk_and_slug", + "value": "False", "line_number": -1 } }, @@ -1583,13 +1553,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.8" ], - "name": "__qualname__", - "value": "'FormMixinBase'", + "name": "queryset", + "value": "None", "line_number": -1 } }, @@ -1603,8 +1573,8 @@ "Django", "1.8" ], - "name": "query_pk_and_slug", - "value": "False", + "name": "slug_field", + "value": "'slug'", "line_number": -1 } }, @@ -1618,8 +1588,8 @@ "Django", "1.8" ], - "name": "queryset", - "value": "None", + "name": "slug_url_kwarg", + "value": "'slug'", "line_number": -1 } }, @@ -1628,12 +1598,12 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.8" ], - "name": "queryset", + "name": "template_name_field", "value": "None", "line_number": -1 } @@ -1643,13 +1613,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.8" ], - "name": "query_string", - "value": "False", + "name": "template_name_suffix", + "value": "'_detail'", "line_number": -1 } }, @@ -1658,13 +1628,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "CreateView", + "django.views.generic.edit", "Django", "1.8" ], - "name": "__reduce__", - "value": "", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -1673,13 +1643,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", + "DeleteView", "django.views.generic.edit", "Django", "1.8" ], - "name": "__repr__", - "value": "", + "name": "template_name_suffix", + "value": "'_confirm_delete'", "line_number": -1 } }, @@ -1688,13 +1658,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "__repr__", - "value": "", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -1703,14 +1673,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "response_class", - "value": "", - "line_number": 190 + "name": "form_class", + "value": "None", + "line_number": -1 } }, { @@ -1718,13 +1688,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", + "FormMixin", "django.views.generic.edit", "Django", "1.8" ], - "name": "__setattr__", - "value": "", + "name": "initial", + "value": "{}", "line_number": -1 } }, @@ -1733,13 +1703,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "__setattr__", - "value": "", + "name": "prefix", + "value": "None", "line_number": -1 } }, @@ -1748,13 +1718,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "__setstate__", - "value": "", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -1768,8 +1738,8 @@ "Django", "1.8" ], - "name": "__sizeof__", - "value": "", + "name": "__abstractmethods__", + "value": "", "line_number": -1 } }, @@ -1778,13 +1748,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "slug_field", - "value": "'slug'", + "name": "__base__", + "value": "", "line_number": -1 } }, @@ -1793,13 +1763,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "slug_url_kwarg", - "value": "'slug'", + "name": "__bases__", + "value": "(,)", "line_number": -1 } }, @@ -1808,13 +1778,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "__str__", - "value": "", + "name": "__basicsize__", + "value": "864", "line_number": -1 } }, @@ -1828,8 +1798,8 @@ "Django", "1.8" ], - "name": "__subclasscheck__", - "value": "", + "name": "__call__", + "value": "", "line_number": -1 } }, @@ -1843,8 +1813,8 @@ "Django", "1.8" ], - "name": "__subclasses__", - "value": "", + "name": "__delattr__", + "value": "", "line_number": -1 } }, @@ -1853,13 +1823,13 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", + "FormMixinBase", "django.views.generic.edit", "Django", "1.8" ], - "name": "success_url", - "value": "None", + "name": "__dictoffset__", + "value": "264", "line_number": -1 } }, @@ -1868,13 +1838,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", + "FormMixinBase", "django.views.generic.edit", "Django", "1.8" ], - "name": "success_url", - "value": "None", + "name": "__dir__", + "value": "", "line_number": -1 } }, @@ -1883,13 +1853,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "__suppress_context__", - "value": "", + "name": "__flags__", + "value": "2148292097", "line_number": -1 } }, @@ -1898,13 +1868,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "template_engine", - "value": "None", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -1913,13 +1883,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "template_name", - "value": "None", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -1928,13 +1898,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "template_name_field", - "value": "None", + "name": "__instancecheck__", + "value": "", "line_number": -1 } }, @@ -1943,13 +1913,13 @@ "pk": null, "fields": { "klass": [ - "CreateView", + "FormMixinBase", "django.views.generic.edit", "Django", "1.8" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "__itemsize__", + "value": "40", "line_number": -1 } }, @@ -1958,13 +1928,13 @@ "pk": null, "fields": { "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "template_name_suffix", - "value": "'_archive'", + "name": "__mro__", + "value": "(, , )", "line_number": -1 } }, @@ -1973,13 +1943,13 @@ "pk": null, "fields": { "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "mro", + "value": "", "line_number": -1 } }, @@ -1988,13 +1958,13 @@ "pk": null, "fields": { "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "template_name_suffix", - "value": "'_archive_week'", + "name": "__qualname__", + "value": "'FormMixinBase'", "line_number": -1 } }, @@ -2003,13 +1973,13 @@ "pk": null, "fields": { "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "template_name_suffix", - "value": "'_archive_year'", + "name": "__repr__", + "value": "", "line_number": -1 } }, @@ -2018,13 +1988,13 @@ "pk": null, "fields": { "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "template_name_suffix", - "value": "'_archive_month'", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -2033,13 +2003,13 @@ "pk": null, "fields": { "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "__sizeof__", + "value": "", "line_number": -1 } }, @@ -2048,13 +2018,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "template_name_suffix", - "value": "'_detail'", + "name": "__subclasscheck__", + "value": "", "line_number": -1 } }, @@ -2063,13 +2033,13 @@ "pk": null, "fields": { "klass": [ - "DeleteView", + "FormMixinBase", "django.views.generic.edit", "Django", "1.8" ], - "name": "template_name_suffix", - "value": "'_confirm_delete'", + "name": "__subclasses__", + "value": "", "line_number": -1 } }, @@ -2078,13 +2048,13 @@ "pk": null, "fields": { "klass": [ - "UpdateView", + "FormMixinBase", "django.views.generic.edit", "Django", "1.8" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "__text_signature__", + "value": "None", "line_number": -1 } }, @@ -2093,13 +2063,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "template_name_suffix", - "value": "'_list'", + "name": "__weakrefoffset__", + "value": "368", "line_number": -1 } }, @@ -2108,12 +2078,12 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", + "ModelFormMixin", "django.views.generic.edit", "Django", "1.8" ], - "name": "__text_signature__", + "name": "fields", "value": "None", "line_number": -1 } @@ -2123,13 +2093,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "UpdateView", + "django.views.generic.edit", "Django", "1.8" ], - "name": "__traceback__", - "value": "", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -2138,13 +2108,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "url", - "value": "None", + "name": "allow_empty", + "value": "True", "line_number": -1 } }, @@ -2153,13 +2123,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "uses_datetime_field", - "value": "", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -2168,13 +2138,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "__weakrefoffset__", - "value": "368", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2183,12 +2153,12 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "week", + "name": "ordering", "value": "None", "line_number": -1 } @@ -2198,13 +2168,13 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "week_format", - "value": "'%U'", + "name": "page_kwarg", + "value": "'page'", "line_number": -1 } }, @@ -2213,13 +2183,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "with_traceback", - "value": "", + "name": "paginate_by", + "value": "None", "line_number": -1 } }, @@ -2228,13 +2198,13 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "year", - "value": "None", + "name": "paginate_orphans", + "value": "0", "line_number": -1 } }, @@ -2243,48 +2213,44 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "year_format", - "value": "'%Y'", - "line_number": -1 + "name": "paginator_class", + "value": "", + "line_number": 19 } }, { - "model": "cbv.method", + "model": "cbv.klassattribute", "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "_allowed_methods", - "docstring": "", - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", - "kwargs": "self", - "line_number": 109 + "name": "queryset", + "value": "None", + "line_number": -1 } }, { - "model": "cbv.method", + "model": "cbv.klassattribute", "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "as_view", - "docstring": "Main entry point for a request-response process.", - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n if 'permanent' not in initkwargs and cls.permanent is _sentinel:\n warnings.warn(\n \"Default value of 'RedirectView.permanent' will change \"\n \"from True to False in Django 1.9. Set an explicit value \"\n \"to silence this warning.\",\n RemovedInDjango19Warning,\n stacklevel=2\n )\n initkwargs['permanent'] = True\n return super(RedirectView, cls).as_view(**initkwargs)\n", - "kwargs": "cls, **initkwargs", - "line_number": 183 + "name": "template_name_suffix", + "value": "'_list'", + "line_number": -1 } }, { @@ -2292,16 +2258,16 @@ "pk": null, "fields": { "klass": [ - "View", + "ContextMixin", "django.views.generic.base", "Django", "1.8" ], - "name": "as_view", - "docstring": "Main entry point for a request-response process.", - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "kwargs": "cls, **initkwargs", - "line_number": 49 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", + "kwargs": "self, **kwargs", + "line_number": 25 } }, { @@ -2314,11 +2280,11 @@ "Django", "1.8" ], - "name": "delete", - "docstring": "", - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 241 + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n if 'permanent' not in initkwargs and cls.permanent is _sentinel:\n warnings.warn(\n \"Default value of 'RedirectView.permanent' will change \"\n \"from True to False in Django 1.9. Set an explicit value \"\n \"to silence this warning.\",\n RemovedInDjango19Warning,\n stacklevel=2\n )\n initkwargs['permanent'] = True\n return super(RedirectView, cls).as_view(**initkwargs)\n", + "kwargs": "cls, **initkwargs", + "line_number": 183 } }, { @@ -2326,16 +2292,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.8" ], "name": "delete", - "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "docstring": "", + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 289 + "line_number": 241 } }, { @@ -2343,16 +2309,16 @@ "pk": null, "fields": { "klass": [ - "View", + "RedirectView", "django.views.generic.base", "Django", "1.8" ], - "name": "dispatch", + "name": "get", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s', request.path,\n extra={\n 'status_code': 410,\n 'request': request\n })\n return http.HttpResponseGone()\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 81 + "line_number": 217 } }, { @@ -2360,16 +2326,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.8" ], - "name": "form_invalid", - "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", - "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "kwargs": "self, form", - "line_number": 110 + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", + "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n try:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n except NoReverseMatch:\n return None\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", + "kwargs": "self, *args, **kwargs", + "line_number": 196 } }, { @@ -2377,16 +2343,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.8" ], - "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", - "kwargs": "self, form", - "line_number": 189 + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 232 } }, { @@ -2394,16 +2360,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.8" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 104 + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, *args, **kwargs):\n if 'permanent' not in kwargs and self.permanent is _sentinel:\n warnings.warn(\n \"Default value of 'RedirectView.permanent' will change \"\n \"from True to False in Django 1.9. Set an explicit value \"\n \"to silence this warning.\",\n RemovedInDjango19Warning,\n stacklevel=2\n )\n self.permanent = True\n super(RedirectView, self).__init__(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 171 } }, { @@ -2411,16 +2377,16 @@ "pk": null, "fields": { "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "1.8" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "name": "options", + "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 114 + "line_number": 238 } }, { @@ -2433,11 +2399,11 @@ "Django", "1.8" ], - "name": "get", + "name": "patch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s', request.path,\n extra={\n 'status_code': 410,\n 'request': request\n })\n return http.HttpResponseGone()\n", + "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 217 + "line_number": 247 } }, { @@ -2445,16 +2411,16 @@ "pk": null, "fields": { "klass": [ - "TemplateView", + "RedirectView", "django.views.generic.base", "Django", "1.8" ], - "name": "get", + "name": "post", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 157 + "line_number": 235 } }, { @@ -2462,16 +2428,16 @@ "pk": null, "fields": { "klass": [ - "BaseListView", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "1.8" ], - "name": "get", + "name": "put", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if (self.get_paginate_by(self.object_list) is not None\n and hasattr(self.object_list, 'exists')):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data()\n return self.render_to_response(context)\n", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 158 + "line_number": 244 } }, { @@ -2479,16 +2445,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.8" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 338 + "name": "get_template_names", + "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "kwargs": "self", + "line_number": 139 } }, { @@ -2496,16 +2462,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.8" ], - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 266 + "name": "render_to_response", + "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 122 } }, { @@ -2513,16 +2479,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "1.8" ], "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n form = self.get_form()\n return self.render_to_response(self.get_context_data(form=form))\n", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 201 + "line_number": 157 } }, { @@ -2530,16 +2496,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.8" ], - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 243 + "name": "_allowed_methods", + "docstring": "", + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "kwargs": "self", + "line_number": 109 } }, { @@ -2547,16 +2513,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "1.8" ], - "name": "get_allow_empty", - "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", - "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "kwargs": "self", - "line_number": 108 + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 49 } }, { @@ -2564,16 +2530,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.8" ], - "name": "get_allow_future", - "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", - "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", - "kwargs": "self", - "line_number": 278 + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 81 } }, { @@ -2581,16 +2547,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "1.8" ], - "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", - "kwargs": "self, **kwargs", - "line_number": 96 + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning('Method Not Allowed (%s): %s', request.method, request.path,\n extra={\n 'status_code': 405,\n 'request': request\n }\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 91 } }, { @@ -2598,16 +2564,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "1.8" ], - "name": "get_context_data", - "docstring": "Get the context for this view.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list', self.object_list)\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", "kwargs": "self, **kwargs", - "line_number": 126 + "line_number": 39 } }, { @@ -2615,16 +2581,16 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", + "View", "django.views.generic.base", "Django", "1.8" ], - "name": "get_context_data", - "docstring": "", - "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", - "kwargs": "self, **kwargs", - "line_number": 25 + "name": "options", + "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 100 } }, { @@ -2632,16 +2598,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", - "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", - "kwargs": "self, obj", - "line_number": 85 + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", + "kwargs": "self", + "line_number": 420 } }, { @@ -2649,33 +2615,33 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.8" ], - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", - "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", - "kwargs": "self, object_list", - "line_number": 115 - } + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n },\n )\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 644 + } }, { "model": "cbv.method", "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "1.8" ], - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", - "kwargs": "self, date", - "line_number": 186 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 338 } }, { @@ -2683,16 +2649,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "1.8" ], - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", - "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", - "kwargs": "self, date", - "line_number": 130 + "name": "get_dated_items", + "docstring": "Obtain the list of dates and items.", + "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", + "kwargs": "self", + "line_number": 345 } }, { @@ -2700,16 +2666,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "1.8" ], - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "kwargs": "self, date", - "line_number": 242 + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", + "kwargs": "self, **lookup", + "line_number": 358 } }, { @@ -2717,16 +2683,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "1.8" ], - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", - "kwargs": "self, date", - "line_number": 71 + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", + "kwargs": "self, queryset, date_type=None, ordering='ASC'", + "line_number": 390 } }, { @@ -2734,16 +2700,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.8" ], - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "kwargs": "self, date", - "line_number": 596 + "name": "get_date_list_period", + "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", + "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", + "kwargs": "self", + "line_number": 384 } }, { @@ -2751,16 +2717,16 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.8" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", + "name": "get_ordering", + "docstring": "Returns the field or fields to use for ordering the queryset; uses the\ndate field by default.", + "code": "def get_ordering(self):\n \"\"\"\n Returns the field or fields to use for ordering the queryset; uses the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", "kwargs": "self", - "line_number": 420 + "line_number": 351 } }, { @@ -2768,16 +2734,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.8" ], - "name": "get_dated_items", - "docstring": "Obtain the list of dates and items.", - "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", - "kwargs": "self", - "line_number": 345 + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 596 } }, { @@ -2814,6 +2780,23 @@ "line_number": 498 } }, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "BaseTodayArchiveView", + "django.views.generic.dates", + "Django", + "1.8" + ], + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", + "kwargs": "self", + "line_number": 625 + } +}, { "model": "cbv.method", "pk": null, @@ -2853,16 +2836,16 @@ "pk": null, "fields": { "klass": [ - "BaseTodayArchiveView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.8" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", "kwargs": "self", - "line_number": 625 + "line_number": 477 } }, { @@ -2870,16 +2853,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "DateMixin", "django.views.generic.dates", "Django", "1.8" ], - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", - "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", - "kwargs": "self, **lookup", - "line_number": 358 + "name": "get_allow_future", + "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", + "kwargs": "self", + "line_number": 278 } }, { @@ -2904,16 +2887,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "DateMixin", "django.views.generic.dates", "Django", "1.8" ], - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", - "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", - "kwargs": "self, queryset, date_type=None, ordering='ASC'", - "line_number": 390 + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", + "kwargs": "self, value", + "line_number": 298 } }, { @@ -2921,16 +2904,33 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "DateMixin", "django.views.generic.dates", "Django", "1.8" ], - "name": "get_date_list_period", - "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", - "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", - "kwargs": "self", - "line_number": 384 + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", + "kwargs": "self, date", + "line_number": 311 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "DayMixin", + "django.views.generic.dates", + "Django", + "1.8" + ], + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", + "kwargs": "self, date", + "line_number": 186 } }, { @@ -2972,16 +2972,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "get_form", - "docstring": "Returns an instance of the form to be used in this view.", - "code": "def get_form(self, form_class=None):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", - "kwargs": "self, form_class=None", - "line_number": 68 + "name": "_get_next_day", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", + "kwargs": "self, date", + "line_number": 178 } }, { @@ -2989,16 +2989,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "get_form_class", - "docstring": "Returns the form class to use in this view.", - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", - "kwargs": "self", - "line_number": 124 + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "kwargs": "self, date", + "line_number": 166 } }, { @@ -3006,16 +3006,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "get_form_class", - "docstring": "Returns the form class to use in this view", - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", - "kwargs": "self", - "line_number": 62 + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "kwargs": "self, date", + "line_number": 172 } }, { @@ -3023,16 +3023,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", - "kwargs": "self", - "line_number": 155 + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", + "kwargs": "self, date", + "line_number": 130 } }, { @@ -3040,16 +3040,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "name": "get_month", + "docstring": "Return the month for which this view should display data.", + "code": "def get_month(self):\n \"\"\"\n Return the month for which this view should display data.\n \"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", "kwargs": "self", - "line_number": 76 + "line_number": 92 } }, { @@ -3057,16 +3057,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "get_initial", - "docstring": "Returns the initial data to use for forms on this view.", - "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", "kwargs": "self", - "line_number": 50 + "line_number": 85 } }, { @@ -3074,17 +3074,17 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", + "MonthMixin", "django.views.generic.dates", "Django", "1.8" ], - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", - "kwargs": "self", - "line_number": 477 - } + "name": "_get_next_month", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n return date.replace(year=date.year + 1, month=1, day=1)\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "kwargs": "self, date", + "line_number": 119 + } }, { "model": "cbv.method", @@ -3096,11 +3096,11 @@ "Django", "1.8" ], - "name": "get_month", - "docstring": "Return the month for which this view should display data.", - "code": "def get_month(self):\n \"\"\"\n Return the month for which this view should display data.\n \"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", - "kwargs": "self", - "line_number": 92 + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "kwargs": "self, date", + "line_number": 107 } }, { @@ -3113,11 +3113,11 @@ "Django", "1.8" ], - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", - "kwargs": "self", - "line_number": 85 + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "kwargs": "self, date", + "line_number": 113 } }, { @@ -3125,16 +3125,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.8" ], - "name": "_get_next_day", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", "kwargs": "self, date", - "line_number": 178 + "line_number": 242 } }, { @@ -3142,16 +3142,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.8" ], - "name": "get_next_day", - "docstring": "Get the next valid day.", - "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "name": "_get_next_week", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n", "kwargs": "self, date", - "line_number": 166 + "line_number": 234 } }, { @@ -3159,16 +3159,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.8" ], - "name": "_get_next_month", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n return date.replace(year=date.year + 1, month=1, day=1)\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "name": "get_next_week", + "docstring": "Get the next valid week.", + "code": "def get_next_week(self, date):\n \"\"\"\n Get the next valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", "kwargs": "self, date", - "line_number": 119 + "line_number": 222 } }, { @@ -3176,16 +3176,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.8" ], - "name": "get_next_month", - "docstring": "Get the next valid month.", - "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", "kwargs": "self, date", - "line_number": 107 + "line_number": 228 } }, { @@ -3198,11 +3198,28 @@ "Django", "1.8" ], - "name": "_get_next_week", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n", + "name": "get_week", + "docstring": "Return the week for which this view should display data", + "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", + "kwargs": "self", + "line_number": 207 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "WeekMixin", + "django.views.generic.dates", + "Django", + "1.8" + ], + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", "kwargs": "self, date", - "line_number": 234 + "line_number": 248 } }, { @@ -3215,11 +3232,28 @@ "Django", "1.8" ], - "name": "get_next_week", - "docstring": "Get the next valid week.", - "code": "def get_next_week(self, date):\n \"\"\"\n Get the next valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "kwargs": "self", + "line_number": 200 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "YearMixin", + "django.views.generic.dates", + "Django", + "1.8" + ], + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", "kwargs": "self, date", - "line_number": 222 + "line_number": 71 } }, { @@ -3261,16 +3295,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "1.8" ], - "name": "get_object", - "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg, None)\n slug = self.kwargs.get(self.slug_url_kwarg, None)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "kwargs": "self, queryset=None", - "line_number": 22 + "name": "get_previous_year", + "docstring": "Get the previous valid year.", + "code": "def get_previous_year(self, date):\n \"\"\"\n Get the previous valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", + "kwargs": "self, date", + "line_number": 57 } }, { @@ -3278,16 +3312,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateDetailView", + "YearMixin", "django.views.generic.dates", "Django", "1.8" ], - "name": "get_object", - "docstring": "Get the object this request displays.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n },\n )\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", - "kwargs": "self, queryset=None", - "line_number": 644 + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "kwargs": "self", + "line_number": 36 } }, { @@ -3295,16 +3329,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "YearMixin", "django.views.generic.dates", "Django", "1.8" ], - "name": "get_ordering", - "docstring": "Returns the field or fields to use for ordering the queryset; uses the\ndate field by default.", - "code": "def get_ordering(self):\n \"\"\"\n Returns the field or fields to use for ordering the queryset; uses the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", "kwargs": "self", - "line_number": 351 + "line_number": 29 } }, { @@ -3312,16 +3346,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.8" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset.", - "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset.\n \"\"\"\n return self.ordering\n", - "kwargs": "self", - "line_number": 55 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 114 } }, { @@ -3329,16 +3363,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.8" ], - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "kwargs": "self, queryset", - "line_number": 86 + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 96 } }, { @@ -3346,16 +3380,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.8" ], - "name": "get_paginate_orphans", - "docstring": "Returns the maximum number of orphans extend the last page by when\npaginating.", - "code": "def get_paginate_orphans(self):\n \"\"\"\n Returns the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", - "kwargs": "self", - "line_number": 101 + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 85 } }, { @@ -3363,16 +3397,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.8" ], - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", - "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", - "line_number": 92 + "name": "get_object", + "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg, None)\n slug = self.kwargs.get(self.slug_url_kwarg, None)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 22 } }, { @@ -3380,16 +3414,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.8" ], - "name": "get_prefix", - "docstring": "Returns the prefix to use for forms on this view", - "code": "def get_prefix(self):\n \"\"\"\n Returns the prefix to use for forms on this view\n \"\"\"\n return self.prefix\n", + "name": "get_queryset", + "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nNote that this method is called by the default implementation of\n`get_object` and may not be called if `get_object` is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n Note that this method is called by the default implementation of\n `get_object` and may not be called if `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", "kwargs": "self", - "line_number": 56 + "line_number": 59 } }, { @@ -3397,16 +3431,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.8" ], - "name": "get_previous_day", - "docstring": "Get the previous valid day.", - "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", - "kwargs": "self, date", - "line_number": 172 + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", + "kwargs": "self", + "line_number": 79 } }, { @@ -3414,16 +3448,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.8" ], - "name": "get_previous_month", - "docstring": "Get the previous valid month.", - "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", - "kwargs": "self, date", - "line_number": 113 + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.object._meta.app_label,\n self.object._meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", + "kwargs": "self", + "line_number": 124 } }, { @@ -3431,50 +3465,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.8" ], - "name": "get_previous_week", - "docstring": "Get the previous valid week.", - "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", - "kwargs": "self, date", - "line_number": 228 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "YearMixin", - "django.views.generic.dates", - "Django", - "1.8" - ], - "name": "get_previous_year", - "docstring": "Get the previous valid year.", - "code": "def get_previous_year(self, date):\n \"\"\"\n Get the previous valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", - "kwargs": "self, date", - "line_number": 57 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", - "Django", - "1.8" - ], - "name": "get_queryset", - "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nNote that this method is called by the default implementation of\n`get_object` and may not be called if `get_object` is overridden.", - "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n Note that this method is called by the default implementation of\n `get_object` and may not be called if `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", - "kwargs": "self", - "line_number": 59 + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 243 } }, { @@ -3482,16 +3482,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.8" ], - "name": "get_queryset", - "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", - "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, six.string_types):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", - "kwargs": "self", - "line_number": 26 + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 247 } }, { @@ -3499,16 +3499,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.8" ], - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", - "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n try:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n except NoReverseMatch:\n return None\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", - "kwargs": "self, *args, **kwargs", - "line_number": 196 + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 266 } }, { @@ -3516,16 +3516,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.8" ], - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", - "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", - "kwargs": "self", - "line_number": 79 + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 270 } }, { @@ -3533,16 +3533,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", + "DeletionMixin", "django.views.generic.edit", "Django", "1.8" ], - "name": "get_success_url", - "docstring": "Returns the supplied success URL.", - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", - "kwargs": "self", - "line_number": 92 + "name": "delete", + "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 289 } }, { @@ -3567,16 +3567,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", + "DeletionMixin", "django.views.generic.edit", "Django", "1.8" ], - "name": "get_success_url", - "docstring": "Returns the supplied URL.", - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n # force_text can be removed with deprecation warning\n self.success_url = force_text(self.success_url)\n if PERCENT_PLACEHOLDER_REGEX.search(self.success_url):\n warnings.warn(\n \"%()s placeholder style in success_url is deprecated. \"\n \"Please replace them by the {} Python format syntax.\",\n RemovedInDjango110Warning, stacklevel=2\n )\n url = self.success_url % self.object.__dict__\n else:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", - "kwargs": "self", - "line_number": 164 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 300 } }, { @@ -3584,16 +3584,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", - "kwargs": "self", - "line_number": 184 + "name": "form_invalid", + "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", + "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 110 } }, { @@ -3601,16 +3601,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.object._meta.app_label,\n self.object._meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", - "kwargs": "self", - "line_number": 124 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 104 } }, { @@ -3618,16 +3618,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "get_template_names", - "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "kwargs": "self", - "line_number": 139 + "name": "get_form", + "docstring": "Returns an instance of the form to be used in this view.", + "code": "def get_form(self, form_class=None):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class=None", + "line_number": 68 } }, { @@ -3635,16 +3635,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "get_week", - "docstring": "Return the week for which this view should display data", - "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", + "name": "get_form_class", + "docstring": "Returns the form class to use in this view", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", "kwargs": "self", - "line_number": 207 + "line_number": 62 } }, { @@ -3652,16 +3652,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "kwargs": "self, date", - "line_number": 248 + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "kwargs": "self", + "line_number": 76 } }, { @@ -3669,16 +3669,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "name": "get_initial", + "docstring": "Returns the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", "kwargs": "self", - "line_number": 200 + "line_number": 50 } }, { @@ -3686,16 +3686,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "get_year", - "docstring": "Return the year for which this view should display data.", - "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "name": "get_prefix", + "docstring": "Returns the prefix to use for forms on this view", + "code": "def get_prefix(self):\n \"\"\"\n Returns the prefix to use for forms on this view\n \"\"\"\n return self.prefix\n", "kwargs": "self", - "line_number": 36 + "line_number": 56 } }, { @@ -3703,16 +3703,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", + "name": "get_success_url", + "docstring": "Returns the supplied success URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", "kwargs": "self", - "line_number": 29 + "line_number": 92 } }, { @@ -3720,16 +3720,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.8" ], - "name": "head", - "docstring": "", - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 232 + "name": "__new__", + "docstring": "Create and return a new object. See help(type) for accurate signature.", + "code": "def __new__(cls, name, bases, attrs):\n get_form = attrs.get('get_form')\n if get_form and inspect.isfunction(get_form):\n try:\n inspect.getcallargs(get_form, None)\n except TypeError:\n warnings.warn(\n \"`%s.%s.get_form` method must define a default value for \"\n \"its `form_class` argument.\" % (attrs['__module__'], name),\n RemovedInDjango110Warning, stacklevel=2\n )\n def get_form_with_form_class(self, form_class=None):\n if form_class is None:\n form_class = self.get_form_class()\n return get_form(self, form_class=form_class)\n attrs['get_form'] = get_form_with_form_class\n return super(FormMixinBase, cls).__new__(cls, name, bases, attrs)\n", + "kwargs": "cls, name, bases, attrs", + "line_number": 20 } }, { @@ -3737,16 +3737,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "http_method_not_allowed", - "docstring": "", - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning('Method Not Allowed (%s): %s', request.method, request.path,\n extra={\n 'status_code': 405,\n 'request': request\n }\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 91 + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", + "kwargs": "self, form", + "line_number": 189 } }, { @@ -3754,16 +3754,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", - "code": "def __init__(self, *args, **kwargs):\n if 'permanent' not in kwargs and self.permanent is _sentinel:\n warnings.warn(\n \"Default value of 'RedirectView.permanent' will change \"\n \"from True to False in Django 1.9. Set an explicit value \"\n \"to silence this warning.\",\n RemovedInDjango19Warning,\n stacklevel=2\n )\n self.permanent = True\n super(RedirectView, self).__init__(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 171 + "name": "get_form_class", + "docstring": "Returns the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "kwargs": "self", + "line_number": 124 } }, { @@ -3771,16 +3771,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", - "kwargs": "self, **kwargs", - "line_number": 39 + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 155 } }, { @@ -3788,16 +3788,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", - "kwargs": "self, value", - "line_number": 298 + "name": "get_success_url", + "docstring": "Returns the supplied URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n # force_text can be removed with deprecation warning\n self.success_url = force_text(self.success_url)\n if PERCENT_PLACEHOLDER_REGEX.search(self.success_url):\n warnings.warn(\n \"%()s placeholder style in success_url is deprecated. \"\n \"Please replace them by the {} Python format syntax.\",\n RemovedInDjango110Warning, stacklevel=2\n )\n url = self.success_url % self.object.__dict__\n else:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 164 } }, { @@ -3805,16 +3805,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.8" ], - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "kwargs": "self, date", - "line_number": 311 + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n form = self.get_form()\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 201 } }, { @@ -3822,16 +3822,16 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", + "ProcessFormView", "django.views.generic.edit", "Django", "1.8" ], - "name": "__new__", - "docstring": "Create and return a new object. See help(type) for accurate signature.", - "code": "def __new__(cls, name, bases, attrs):\n get_form = attrs.get('get_form')\n if get_form and inspect.isfunction(get_form):\n try:\n inspect.getcallargs(get_form, None)\n except TypeError:\n warnings.warn(\n \"`%s.%s.get_form` method must define a default value for \"\n \"its `form_class` argument.\" % (attrs['__module__'], name),\n RemovedInDjango110Warning, stacklevel=2\n )\n def get_form_with_form_class(self, form_class=None):\n if form_class is None:\n form_class = self.get_form_class()\n return get_form(self, form_class=form_class)\n attrs['get_form'] = get_form_with_form_class\n return super(FormMixinBase, cls).__new__(cls, name, bases, attrs)\n", - "kwargs": "cls, name, bases, attrs", - "line_number": 20 + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 208 } }, { @@ -3839,16 +3839,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.8" ], - "name": "options", - "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 238 + "name": "put", + "docstring": "", + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 221 } }, { @@ -3856,16 +3856,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "BaseListView", + "django.views.generic.list", "Django", "1.8" ], - "name": "options", - "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if (self.get_paginate_by(self.object_list) is not None\n and hasattr(self.object_list, 'exists')):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data()\n return self.render_to_response(context)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 100 + "line_number": 158 } }, { @@ -3878,11 +3878,11 @@ "Django", "1.8" ], - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", - "kwargs": "self, queryset, page_size", - "line_number": 61 + "name": "get_allow_empty", + "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 108 } }, { @@ -3890,16 +3890,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "patch", - "docstring": "", - "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 247 + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list', self.object_list)\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 126 } }, { @@ -3907,16 +3907,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 208 + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 115 } }, { @@ -3924,16 +3924,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 270 + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset.", + "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset.\n \"\"\"\n return self.ordering\n", + "kwargs": "self", + "line_number": 55 } }, { @@ -3941,16 +3941,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 300 + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 86 } }, { @@ -3958,16 +3958,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 235 + "name": "get_paginate_orphans", + "docstring": "Returns the maximum number of orphans extend the last page by when\npaginating.", + "code": "def get_paginate_orphans(self):\n \"\"\"\n Returns the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "kwargs": "self", + "line_number": 101 } }, { @@ -3975,16 +3975,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 247 + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", + "line_number": 92 } }, { @@ -3992,16 +3992,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "put", - "docstring": "", - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 221 + "name": "get_queryset", + "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", + "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, six.string_types):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "kwargs": "self", + "line_number": 26 } }, { @@ -4009,16 +4009,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "put", - "docstring": "", - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 244 + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 61 } }, { @@ -4026,16 +4026,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.8" ], - "name": "render_to_response", - "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", - "kwargs": "self, context, **response_kwargs", - "line_number": 122 + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", + "kwargs": "self", + "line_number": 184 } }, { @@ -4043,14 +4043,14 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.8" ], "child": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.8" ], @@ -4062,14 +4062,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", + "TemplateResponseMixin", "django.views.generic.base", "Django", "1.8" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "1.8" ], @@ -4087,12 +4087,12 @@ "1.8" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "1.8" ], - "order": 0 + "order": 1 } }, { @@ -4100,18 +4100,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", + "View", "django.views.generic.base", "Django", "1.8" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "TemplateView", + "django.views.generic.base", "Django", "1.8" ], - "order": 0 + "order": 2 } }, { @@ -4119,14 +4119,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.8" ], "child": [ - "FormView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.8" ], @@ -4138,18 +4138,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 1 } }, { @@ -4157,14 +4157,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "TemplateView", - "django.views.generic.base", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.8" ], @@ -4176,14 +4176,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.8" ], @@ -4195,18 +4195,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "MonthMixin", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "RedirectView", - "django.views.generic.base", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 1 } }, { @@ -4214,18 +4214,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "DayMixin", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 2 } }, { @@ -4233,18 +4233,18 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", + "DateMixin", "django.views.generic.dates", "Django", "1.8" ], "child": [ - "BaseTodayArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 3 } }, { @@ -4252,18 +4252,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.8" ], "child": [ - "BaseYearArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 4 } }, { @@ -4271,13 +4271,13 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], "child": [ - "BaseWeekArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.8" @@ -4290,18 +4290,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.8" ], "child": [ - "BaseMonthArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 1 } }, { @@ -4309,18 +4309,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.8" ], "child": [ - "BaseDayArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 2 } }, { @@ -4334,7 +4334,7 @@ "1.8" ], "child": [ - "BaseDateDetailView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.8" @@ -4347,18 +4347,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 1 } }, { @@ -4366,18 +4366,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 2 } }, { @@ -4385,18 +4385,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 3 } }, { @@ -4404,14 +4404,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "CreateView", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.8" ], @@ -4423,18 +4423,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "DetailView", - "django.views.generic.detail", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 1 } }, { @@ -4442,18 +4442,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "DateDetailView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 2 } }, { @@ -4461,14 +4461,14 @@ "pk": null, "fields": { "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.8" ], @@ -4480,14 +4480,14 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.8" ], @@ -4499,18 +4499,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "WeekMixin", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 1 } }, { @@ -4518,18 +4518,18 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 2 } }, { @@ -4537,14 +4537,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.8" ], @@ -4556,18 +4556,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 1 } }, { @@ -4575,13 +4575,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.8" ], "child": [ - "BaseDateListView", + "DateDetailView", "django.views.generic.dates", "Django", "1.8" @@ -4594,18 +4594,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "ListView", - "django.views.generic.list", + "DateDetailView", + "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 1 } }, { @@ -4619,7 +4619,7 @@ "1.8" ], "child": [ - "YearArchiveView", + "DayArchiveView", "django.views.generic.dates", "Django", "1.8" @@ -4632,18 +4632,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "WeekArchiveView", + "DayArchiveView", "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 1 } }, { @@ -4657,7 +4657,7 @@ "1.8" ], "child": [ - "TodayArchiveView", + "MonthArchiveView", "django.views.generic.dates", "Django", "1.8" @@ -4670,8 +4670,8 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.8" ], @@ -4681,7 +4681,7 @@ "Django", "1.8" ], - "order": 0 + "order": 1 } }, { @@ -4695,7 +4695,7 @@ "1.8" ], "child": [ - "DayArchiveView", + "TodayArchiveView", "django.views.generic.dates", "Django", "1.8" @@ -4708,18 +4708,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "ArchiveIndexView", + "TodayArchiveView", "django.views.generic.dates", "Django", "1.8" ], - "order": 0 + "order": 1 } }, { @@ -4727,18 +4727,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.8" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -4746,14 +4746,14 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.8" ], @@ -4765,18 +4765,18 @@ "pk": null, "fields": { "parent": [ - "BaseCreateView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.8" ], "child": [ - "CreateView", - "django.views.generic.edit", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -4784,14 +4784,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.8" ], "child": [ - "TemplateView", - "django.views.generic.base", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.8" ], @@ -4803,18 +4803,18 @@ "pk": null, "fields": { "parent": [ - "BaseDeleteView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.8" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -4822,14 +4822,14 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "1.8" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.8" ], @@ -4841,7 +4841,7 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", + "SingleObjectTemplateResponseMixin", "django.views.generic.detail", "Django", "1.8" @@ -4852,7 +4852,7 @@ "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -4860,14 +4860,14 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.8" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "1.8" ], @@ -4879,18 +4879,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.8" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -4898,18 +4898,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.8" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -4917,18 +4917,18 @@ "pk": null, "fields": { "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.8" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -4936,14 +4936,14 @@ "pk": null, "fields": { "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.8" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.8" ], @@ -4955,18 +4955,18 @@ "pk": null, "fields": { "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.8" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -4974,14 +4974,14 @@ "pk": null, "fields": { "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.8" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.8" ], @@ -4993,18 +4993,18 @@ "pk": null, "fields": { "parent": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -5031,18 +5031,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.8" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -5050,13 +5050,13 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.8" ], "child": [ - "ModelFormMixin", + "BaseUpdateView", "django.views.generic.edit", "Django", "1.8" @@ -5069,18 +5069,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.8" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "CreateView", + "django.views.generic.edit", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -5088,13 +5088,13 @@ "pk": null, "fields": { "parent": [ - "BaseFormView", + "BaseCreateView", "django.views.generic.edit", "Django", "1.8" ], "child": [ - "FormView", + "CreateView", "django.views.generic.edit", "Django", "1.8" @@ -5107,18 +5107,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.8" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -5126,13 +5126,13 @@ "pk": null, "fields": { "parent": [ - "BaseUpdateView", + "BaseDeleteView", "django.views.generic.edit", "Django", "1.8" ], "child": [ - "UpdateView", + "DeleteView", "django.views.generic.edit", "Django", "1.8" @@ -5145,18 +5145,18 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.8" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -5164,18 +5164,18 @@ "pk": null, "fields": { "parent": [ - "BaseListView", - "django.views.generic.list", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.8" ], "child": [ - "ListView", - "django.views.generic.list", + "FormView", + "django.views.generic.edit", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -5183,14 +5183,14 @@ "pk": null, "fields": { "parent": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "1.8" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "1.8" ], @@ -5202,18 +5202,18 @@ "pk": null, "fields": { "parent": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.8" ], "child": [ - "WeekArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.8" ], - "order": 1 + "order": 0 } }, { @@ -5221,14 +5221,14 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.8" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.8" ], @@ -5240,18 +5240,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.8" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.8" ], - "order": 2 + "order": 0 } }, { @@ -5259,18 +5259,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.8" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.8" ], - "order": 2 + "order": 0 } }, { @@ -5278,18 +5278,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.8" ], "child": [ - "TemplateView", - "django.views.generic.base", + "UpdateView", + "django.views.generic.edit", "Django", "1.8" ], - "order": 2 + "order": 1 } }, { @@ -5297,18 +5297,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.8" ], - "order": 2 + "order": 0 } }, { @@ -5316,18 +5316,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.8" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.8" ], - "order": 2 + "order": 1 } }, { @@ -5335,18 +5335,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.8" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.8" ], - "order": 2 + "order": 0 } }, { @@ -5354,18 +5354,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.8" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.8" ], - "order": 3 + "order": 1 } }, { @@ -5373,18 +5373,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.8" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.8" ], - "order": 3 + "order": 0 } }, { @@ -5392,18 +5392,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.8" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.8" ], - "order": 4 + "order": 0 } } ] diff --git a/cbv/fixtures/1.9.json b/cbv/fixtures/1.9.json index b8507f0d..79ba0a7e 100644 --- a/cbv/fixtures/1.9.json +++ b/cbv/fixtures/1.9.json @@ -16,9 +16,9 @@ "Django", "1.9" ], - "name": "django.views.generic", + "name": "django.contrib.auth.mixins", "docstring": "", - "filename": "/django/views/generic/__init__.py" + "filename": "/django/contrib/auth/mixins.py" } }, { @@ -28,9 +28,9 @@ "Django", "1.9" ], - "name": "django.views.generic.base", + "name": "django.contrib.auth.views", "docstring": "", - "filename": "/django/views/generic/base.py" + "filename": "/django/contrib/auth/views.py" } }, { @@ -40,9 +40,9 @@ "Django", "1.9" ], - "name": "django.views.generic.dates", + "name": "django.views.generic", "docstring": "", - "filename": "/django/views/generic/dates.py" + "filename": "/django/views/generic/__init__.py" } }, { @@ -52,9 +52,9 @@ "Django", "1.9" ], - "name": "django.views.generic.detail", + "name": "django.views.generic.base", "docstring": "", - "filename": "/django/views/generic/detail.py" + "filename": "/django/views/generic/base.py" } }, { @@ -64,9 +64,9 @@ "Django", "1.9" ], - "name": "django.views.generic.edit", + "name": "django.views.generic.dates", "docstring": "", - "filename": "/django/views/generic/edit.py" + "filename": "/django/views/generic/dates.py" } }, { @@ -76,9 +76,9 @@ "Django", "1.9" ], - "name": "django.views.generic.list", + "name": "django.views.generic.detail", "docstring": "", - "filename": "/django/views/generic/list.py" + "filename": "/django/views/generic/detail.py" } }, { @@ -88,9 +88,9 @@ "Django", "1.9" ], - "name": "django.contrib.auth.views", + "name": "django.views.generic.edit", "docstring": "", - "filename": "/django/contrib/auth/views.py" + "filename": "/django/views/generic/edit.py" } }, { @@ -100,9 +100,9 @@ "Django", "1.9" ], - "name": "django.contrib.auth.mixins", + "name": "django.views.generic.list", "docstring": "", - "filename": "/django/contrib/auth/mixins.py" + "filename": "/django/views/generic/list.py" } }, { @@ -875,13 +875,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], - "name": "__abstractmethods__", - "value": "", + "name": "login_url", + "value": "None", "line_number": -1 } }, @@ -890,13 +890,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], - "name": "allow_empty", - "value": "False", + "name": "permission_denied_message", + "value": "''", "line_number": -1 } }, @@ -905,13 +905,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], - "name": "allow_empty", - "value": "True", + "name": "raise_exception", + "value": "False", "line_number": -1 } }, @@ -920,13 +920,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], - "name": "allow_future", - "value": "False", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -935,13 +935,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], - "name": "args", - "value": "", + "name": "permission_required", + "value": "None", "line_number": -1 } }, @@ -950,13 +950,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.9" ], - "name": "__base__", - "value": "", + "name": "args", + "value": "", "line_number": -1 } }, @@ -965,13 +965,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.9" ], - "name": "__bases__", - "value": "(,)", + "name": "__cause__", + "value": "", "line_number": -1 } }, @@ -980,13 +980,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.9" ], - "name": "__basicsize__", - "value": "864", + "name": "__context__", + "value": "", "line_number": -1 } }, @@ -995,13 +995,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "1.9" ], - "name": "__call__", - "value": "", + "name": "__delattr__", + "value": "", "line_number": -1 } }, @@ -1015,8 +1015,8 @@ "Django", "1.9" ], - "name": "__cause__", - "value": "", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -1025,13 +1025,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "1.9" ], - "name": "content_type", - "value": "None", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -1045,8 +1045,8 @@ "Django", "1.9" ], - "name": "__context__", - "value": "", + "name": "__reduce__", + "value": "", "line_number": -1 } }, @@ -1055,13 +1055,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "1.9" ], - "name": "context_object_name", - "value": "None", + "name": "__repr__", + "value": "", "line_number": -1 } }, @@ -1070,13 +1070,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "1.9" ], - "name": "context_object_name", - "value": "None", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -1085,13 +1085,13 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.9" ], - "name": "context_object_name", - "value": "'latest'", + "name": "__setstate__", + "value": "", "line_number": -1 } }, @@ -1100,13 +1100,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.9" ], - "name": "date_field", - "value": "None", + "name": "__str__", + "value": "", "line_number": -1 } }, @@ -1115,13 +1115,13 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.9" ], - "name": "date_list_period", - "value": "'day'", + "name": "__suppress_context__", + "value": "", "line_number": -1 } }, @@ -1130,13 +1130,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.9" ], - "name": "date_list_period", - "value": "'month'", + "name": "__traceback__", + "value": "", "line_number": -1 } }, @@ -1145,13 +1145,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "1.9" ], - "name": "date_list_period", - "value": "'year'", + "name": "with_traceback", + "value": "", "line_number": -1 } }, @@ -1160,12 +1160,12 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.9" ], - "name": "day", + "name": "pattern_name", "value": "None", "line_number": -1 } @@ -1175,13 +1175,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.9" ], - "name": "day_format", - "value": "'%d'", + "name": "permanent", + "value": "False", "line_number": -1 } }, @@ -1190,13 +1190,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.9" ], - "name": "__delattr__", - "value": "", + "name": "query_string", + "value": "False", "line_number": -1 } }, @@ -1205,13 +1205,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "RedirectView", + "django.views.generic.base", "Django", "1.9" ], - "name": "__delattr__", - "value": "", + "name": "url", + "value": "None", "line_number": -1 } }, @@ -1220,13 +1220,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.9" ], - "name": "__dictoffset__", - "value": "264", + "name": "content_type", + "value": "None", "line_number": -1 } }, @@ -1235,14 +1235,14 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.9" ], - "name": "__dir__", - "value": "", - "line_number": -1 + "name": "response_class", + "value": "", + "line_number": 192 } }, { @@ -1250,12 +1250,12 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.9" ], - "name": "fields", + "name": "template_engine", "value": "None", "line_number": -1 } @@ -1265,13 +1265,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.9" ], - "name": "__flags__", - "value": "2148292097", + "name": "template_name", + "value": "None", "line_number": -1 } }, @@ -1280,13 +1280,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.9" ], - "name": "form_class", - "value": "None", + "name": "http_method_names", + "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", "line_number": -1 } }, @@ -1295,13 +1295,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.9" ], - "name": "__getattribute__", - "value": "", + "name": "template_name_suffix", + "value": "'_archive'", "line_number": -1 } }, @@ -1310,13 +1310,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.9" ], - "name": "__getattribute__", - "value": "", + "name": "context_object_name", + "value": "'latest'", "line_number": -1 } }, @@ -1325,13 +1325,13 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.9" ], - "name": "http_method_names", - "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "name": "allow_empty", + "value": "False", "line_number": -1 } }, @@ -1340,13 +1340,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.9" ], - "name": "__init__", - "value": "", + "name": "date_list_period", + "value": "'year'", "line_number": -1 } }, @@ -1355,13 +1355,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "name": "__init__", - "value": "", + "name": "date_list_period", + "value": "'day'", "line_number": -1 } }, @@ -1370,13 +1370,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "name": "initial", - "value": "{}", + "name": "date_list_period", + "value": "'month'", "line_number": -1 } }, @@ -1385,13 +1385,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "name": "__instancecheck__", - "value": "", + "name": "make_object_list", + "value": "False", "line_number": -1 } }, @@ -1400,13 +1400,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "__itemsize__", - "value": "40", + "name": "allow_future", + "value": "False", "line_number": -1 } }, @@ -1415,12 +1415,12 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "DateMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "login_url", + "name": "date_field", "value": "None", "line_number": -1 } @@ -1430,13 +1430,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", + "DateMixin", "django.views.generic.dates", "Django", "1.9" ], - "name": "make_object_list", - "value": "False", + "name": "uses_datetime_field", + "value": "", "line_number": -1 } }, @@ -1445,13 +1445,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "name": "model", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -1460,12 +1460,12 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "model", + "name": "day", "value": "None", "line_number": -1 } @@ -1475,13 +1475,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.9" ], - "name": "month", - "value": "None", + "name": "day_format", + "value": "'%d'", "line_number": -1 } }, @@ -1490,13 +1490,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "MonthArchiveView", "django.views.generic.dates", "Django", "1.9" ], - "name": "month_format", - "value": "'%b'", + "name": "template_name_suffix", + "value": "'_archive_month'", "line_number": -1 } }, @@ -1505,13 +1505,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "mro", - "value": "", + "name": "month", + "value": "None", "line_number": -1 } }, @@ -1520,13 +1520,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "__mro__", - "value": "(, , )", + "name": "month_format", + "value": "'%b'", "line_number": -1 } }, @@ -1535,13 +1535,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "name": "ordering", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -1550,13 +1550,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "name": "page_kwarg", - "value": "'page'", + "name": "template_name_suffix", + "value": "'_archive_week'", "line_number": -1 } }, @@ -1565,12 +1565,12 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "paginate_by", + "name": "week", "value": "None", "line_number": -1 } @@ -1580,13 +1580,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "paginate_orphans", - "value": "0", + "name": "week_format", + "value": "'%U'", "line_number": -1 } }, @@ -1595,14 +1595,14 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "name": "paginator_class", - "value": "", - "line_number": 19 + "name": "template_name_suffix", + "value": "'_archive_year'", + "line_number": -1 } }, { @@ -1610,12 +1610,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "pattern_name", + "name": "year", "value": "None", "line_number": -1 } @@ -1625,13 +1625,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "permanent", - "value": "False", + "name": "year_format", + "value": "'%Y'", "line_number": -1 } }, @@ -1640,13 +1640,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.9" ], - "name": "permission_denied_message", - "value": "''", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -1655,12 +1655,12 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.9" ], - "name": "permission_required", + "name": "model", "value": "None", "line_number": -1 } @@ -1685,13 +1685,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.9" ], - "name": "prefix", - "value": "None", + "name": "query_pk_and_slug", + "value": "False", "line_number": -1 } }, @@ -1700,13 +1700,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.9" ], - "name": "__qualname__", - "value": "'FormMixinBase'", + "name": "queryset", + "value": "None", "line_number": -1 } }, @@ -1720,8 +1720,8 @@ "Django", "1.9" ], - "name": "query_pk_and_slug", - "value": "False", + "name": "slug_field", + "value": "'slug'", "line_number": -1 } }, @@ -1735,8 +1735,8 @@ "Django", "1.9" ], - "name": "queryset", - "value": "None", + "name": "slug_url_kwarg", + "value": "'slug'", "line_number": -1 } }, @@ -1745,12 +1745,12 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.9" ], - "name": "queryset", + "name": "template_name_field", "value": "None", "line_number": -1 } @@ -1760,13 +1760,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.9" ], - "name": "query_string", - "value": "False", + "name": "template_name_suffix", + "value": "'_detail'", "line_number": -1 } }, @@ -1775,13 +1775,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "CreateView", + "django.views.generic.edit", "Django", "1.9" ], - "name": "raise_exception", - "value": "False", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -1790,13 +1790,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "DeleteView", + "django.views.generic.edit", "Django", "1.9" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "template_name_suffix", + "value": "'_confirm_delete'", "line_number": -1 } }, @@ -1805,13 +1805,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "__reduce__", - "value": "", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -1820,13 +1820,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "__repr__", - "value": "", + "name": "form_class", + "value": "None", "line_number": -1 } }, @@ -1835,13 +1835,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", + "FormMixin", "django.views.generic.edit", "Django", "1.9" ], - "name": "__repr__", - "value": "", + "name": "initial", + "value": "{}", "line_number": -1 } }, @@ -1850,14 +1850,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "response_class", - "value": "", - "line_number": 192 + "name": "prefix", + "value": "None", + "line_number": -1 } }, { @@ -1865,13 +1865,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "__setattr__", - "value": "", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -1885,8 +1885,8 @@ "Django", "1.9" ], - "name": "__setattr__", - "value": "", + "name": "__abstractmethods__", + "value": "", "line_number": -1 } }, @@ -1895,13 +1895,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "__setstate__", - "value": "", + "name": "__base__", + "value": "", "line_number": -1 } }, @@ -1915,8 +1915,8 @@ "Django", "1.9" ], - "name": "__sizeof__", - "value": "", + "name": "__bases__", + "value": "(,)", "line_number": -1 } }, @@ -1925,13 +1925,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "slug_field", - "value": "'slug'", + "name": "__basicsize__", + "value": "864", "line_number": -1 } }, @@ -1940,13 +1940,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "slug_url_kwarg", - "value": "'slug'", + "name": "__call__", + "value": "", "line_number": -1 } }, @@ -1955,13 +1955,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "__str__", - "value": "", + "name": "__delattr__", + "value": "", "line_number": -1 } }, @@ -1975,8 +1975,8 @@ "Django", "1.9" ], - "name": "__subclasscheck__", - "value": "", + "name": "__dictoffset__", + "value": "264", "line_number": -1 } }, @@ -1990,8 +1990,8 @@ "Django", "1.9" ], - "name": "__subclasses__", - "value": "", + "name": "__dir__", + "value": "", "line_number": -1 } }, @@ -2000,13 +2000,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", + "FormMixinBase", "django.views.generic.edit", "Django", "1.9" ], - "name": "success_url", - "value": "None", + "name": "__flags__", + "value": "2148292097", "line_number": -1 } }, @@ -2015,13 +2015,13 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", + "FormMixinBase", "django.views.generic.edit", "Django", "1.9" ], - "name": "success_url", - "value": "None", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -2030,13 +2030,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "__suppress_context__", - "value": "", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -2045,13 +2045,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "template_engine", - "value": "None", + "name": "__instancecheck__", + "value": "", "line_number": -1 } }, @@ -2060,13 +2060,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "template_name", - "value": "None", + "name": "__itemsize__", + "value": "40", "line_number": -1 } }, @@ -2075,13 +2075,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "template_name_field", - "value": "None", + "name": "__mro__", + "value": "(, , )", "line_number": -1 } }, @@ -2090,13 +2090,13 @@ "pk": null, "fields": { "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "template_name_suffix", - "value": "'_archive_week'", + "name": "mro", + "value": "", "line_number": -1 } }, @@ -2105,13 +2105,13 @@ "pk": null, "fields": { "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "__qualname__", + "value": "'FormMixinBase'", "line_number": -1 } }, @@ -2120,13 +2120,13 @@ "pk": null, "fields": { "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "template_name_suffix", - "value": "'_archive_month'", + "name": "__repr__", + "value": "", "line_number": -1 } }, @@ -2135,13 +2135,13 @@ "pk": null, "fields": { "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "template_name_suffix", - "value": "'_archive_year'", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -2150,13 +2150,13 @@ "pk": null, "fields": { "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "__sizeof__", + "value": "", "line_number": -1 } }, @@ -2165,13 +2165,13 @@ "pk": null, "fields": { "klass": [ - "DeleteView", + "FormMixinBase", "django.views.generic.edit", "Django", "1.9" ], - "name": "template_name_suffix", - "value": "'_confirm_delete'", + "name": "__subclasscheck__", + "value": "", "line_number": -1 } }, @@ -2180,13 +2180,13 @@ "pk": null, "fields": { "klass": [ - "CreateView", + "FormMixinBase", "django.views.generic.edit", "Django", "1.9" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "__subclasses__", + "value": "", "line_number": -1 } }, @@ -2195,13 +2195,13 @@ "pk": null, "fields": { "klass": [ - "UpdateView", + "FormMixinBase", "django.views.generic.edit", "Django", "1.9" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "__text_signature__", + "value": "None", "line_number": -1 } }, @@ -2210,13 +2210,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "template_name_suffix", - "value": "'_list'", + "name": "__weakrefoffset__", + "value": "368", "line_number": -1 } }, @@ -2225,13 +2225,13 @@ "pk": null, "fields": { "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "template_name_suffix", - "value": "'_archive'", + "name": "fields", + "value": "None", "line_number": -1 } }, @@ -2240,13 +2240,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "UpdateView", + "django.views.generic.edit", "Django", "1.9" ], "name": "template_name_suffix", - "value": "'_detail'", + "value": "'_form'", "line_number": -1 } }, @@ -2255,13 +2255,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "__text_signature__", - "value": "None", + "name": "allow_empty", + "value": "True", "line_number": -1 } }, @@ -2270,13 +2270,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "__traceback__", - "value": "", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -2285,12 +2285,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "url", + "name": "model", "value": "None", "line_number": -1 } @@ -2300,13 +2300,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "uses_datetime_field", - "value": "", + "name": "ordering", + "value": "None", "line_number": -1 } }, @@ -2315,13 +2315,13 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "__weakrefoffset__", - "value": "368", + "name": "page_kwarg", + "value": "'page'", "line_number": -1 } }, @@ -2330,12 +2330,12 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "week", + "name": "paginate_by", "value": "None", "line_number": -1 } @@ -2345,13 +2345,13 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "week_format", - "value": "'%U'", + "name": "paginate_orphans", + "value": "0", "line_number": -1 } }, @@ -2360,14 +2360,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "with_traceback", - "value": "", - "line_number": -1 + "name": "paginator_class", + "value": "", + "line_number": 19 } }, { @@ -2375,12 +2375,12 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "year", + "name": "queryset", "value": "None", "line_number": -1 } @@ -2390,13 +2390,13 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "year_format", - "value": "'%Y'", + "name": "template_name_suffix", + "value": "'_list'", "line_number": -1 } }, @@ -2405,16 +2405,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], - "name": "_allowed_methods", - "docstring": "", - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "name": "get_login_url", + "docstring": "Override this method to override the login_url attribute.", + "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return force_text(login_url)\n", "kwargs": "self", - "line_number": 108 + "line_number": 19 } }, { @@ -2422,16 +2422,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], - "name": "as_view", - "docstring": "Main entry point for a request-response process.", - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "kwargs": "cls, **initkwargs", - "line_number": 46 + "name": "get_permission_denied_message", + "docstring": "Override this method to override the permission_denied_message attribute.", + "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "kwargs": "self", + "line_number": 31 } }, { @@ -2439,16 +2439,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], - "name": "delete", - "docstring": "", - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 215 + "name": "get_redirect_field_name", + "docstring": "Override this method to override the redirect_field_name attribute.", + "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", + "kwargs": "self", + "line_number": 37 } }, { @@ -2456,16 +2456,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], - "name": "delete", - "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 296 + "name": "handle_no_permission", + "docstring": "", + "code": "def handle_no_permission(self):\n if self.raise_exception:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "kwargs": "self", + "line_number": 43 } }, { @@ -2473,16 +2473,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", + "LoginRequiredMixin", "django.contrib.auth.mixins", "Django", "1.9" ], "name": "dispatch", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super(UserPassesTestMixin, self).dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated():\n return self.handle_no_permission()\n return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 112 + "line_number": 53 } }, { @@ -2507,16 +2507,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 80 + "name": "get_permission_required", + "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", + "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, six.string_types):\n perms = (self.permission_required, )\n else:\n perms = self.permission_required\n return perms\n", + "kwargs": "self", + "line_number": 66 } }, { @@ -2524,16 +2524,33 @@ "pk": null, "fields": { "klass": [ - "LoginRequiredMixin", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", + "Django", + "1.9" + ], + "name": "has_permission", + "docstring": "Override this method to customize the way permissions are checked.", + "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "kwargs": "self", + "line_number": 82 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "UserPassesTestMixin", "django.contrib.auth.mixins", "Django", "1.9" ], "name": "dispatch", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated():\n return self.handle_no_permission()\n return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super(UserPassesTestMixin, self).dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 53 + "line_number": 112 } }, { @@ -2541,16 +2558,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], - "name": "form_invalid", - "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", - "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "kwargs": "self, form", - "line_number": 110 + "name": "get_test_func", + "docstring": "Override this method to use a different test_func method.", + "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", + "kwargs": "self", + "line_number": 106 } }, { @@ -2558,16 +2575,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 104 + "name": "test_func", + "docstring": "", + "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "kwargs": "self", + "line_number": 101 } }, { @@ -2575,16 +2592,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "1.9" ], - "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", - "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", - "kwargs": "self, form", - "line_number": 197 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", + "kwargs": "self, **kwargs", + "line_number": 22 } }, { @@ -2592,16 +2609,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.9" ], - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", + "name": "delete", + "docstring": "", + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 250 + "line_number": 215 } }, { @@ -2609,16 +2626,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "1.9" ], "name": "get", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s', request.path,\n extra={\n 'status_code': 410,\n 'request': request\n })\n return http.HttpResponseGone()\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 338 + "line_number": 191 } }, { @@ -2626,16 +2643,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.9" ], - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 273 + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", + "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n try:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n except NoReverseMatch:\n return None\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", + "kwargs": "self, *args, **kwargs", + "line_number": 170 } }, { @@ -2643,16 +2660,16 @@ "pk": null, "fields": { "klass": [ - "TemplateView", + "RedirectView", "django.views.generic.base", "Django", "1.9" ], - "name": "get", + "name": "head", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 156 + "line_number": 206 } }, { @@ -2660,16 +2677,16 @@ "pk": null, "fields": { "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "1.9" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "name": "options", + "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 116 + "line_number": 212 } }, { @@ -2682,11 +2699,11 @@ "Django", "1.9" ], - "name": "get", + "name": "patch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return http.HttpResponsePermanentRedirect(url)\n else:\n return http.HttpResponseRedirect(url)\n else:\n logger.warning('Gone: %s', request.path,\n extra={\n 'status_code': 410,\n 'request': request\n })\n return http.HttpResponseGone()\n", + "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 191 + "line_number": 221 } }, { @@ -2694,16 +2711,16 @@ "pk": null, "fields": { "klass": [ - "BaseListView", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "1.9" ], - "name": "get", + "name": "post", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if (self.get_paginate_by(self.object_list) is not None\n and hasattr(self.object_list, 'exists')):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data()\n return self.render_to_response(context)\n", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 158 + "line_number": 209 } }, { @@ -2711,16 +2728,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "1.9" ], - "name": "get", - "docstring": "Handles GET requests and instantiates a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n return self.render_to_response(self.get_context_data())\n", + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 209 + "line_number": 218 } }, { @@ -2728,16 +2745,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.9" ], - "name": "get_allow_empty", - "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", - "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "name": "get_template_names", + "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", "kwargs": "self", - "line_number": 108 + "line_number": 138 } }, { @@ -2745,16 +2762,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.9" ], - "name": "get_allow_future", - "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", - "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", - "kwargs": "self", - "line_number": 278 + "name": "render_to_response", + "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 121 } }, { @@ -2762,16 +2779,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", - "Django", + "TemplateView", + "django.views.generic.base", + "Django", "1.9" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the form into the context dict.\n \"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super(FormMixin, self).get_context_data(**kwargs)\n", - "kwargs": "self, **kwargs", - "line_number": 117 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 156 } }, { @@ -2779,16 +2796,16 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", + "View", "django.views.generic.base", "Django", "1.9" ], - "name": "get_context_data", + "name": "_allowed_methods", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n if 'view' not in kwargs:\n kwargs['view'] = self\n return kwargs\n", - "kwargs": "self, **kwargs", - "line_number": 22 + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "kwargs": "self", + "line_number": 108 } }, { @@ -2796,16 +2813,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "1.9" ], - "name": "get_context_data", - "docstring": "Get the context for this view.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list', self.object_list)\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", - "kwargs": "self, **kwargs", - "line_number": 126 + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"\n Main entry point for a request-response process.\n \"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 46 } }, { @@ -2813,16 +2830,50 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "1.9" ], - "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 80 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "View", + "django.views.generic.base", + "Django", + "1.9" + ], + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning('Method Not Allowed (%s): %s', request.method, request.path,\n extra={\n 'status_code': 405,\n 'request': request\n }\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 90 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "View", + "django.views.generic.base", + "Django", + "1.9" + ], + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", "kwargs": "self, **kwargs", - "line_number": 98 + "line_number": 36 } }, { @@ -2830,16 +2881,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "1.9" ], - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", - "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n if obj._deferred:\n obj = obj._meta.proxy_for_model\n return obj._meta.model_name\n else:\n return None\n", - "kwargs": "self, obj", - "line_number": 85 + "name": "options", + "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 99 } }, { @@ -2847,16 +2898,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.9" ], - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", - "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", - "kwargs": "self, object_list", - "line_number": 115 + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", + "kwargs": "self", + "line_number": 420 } }, { @@ -2864,16 +2915,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.9" ], - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", - "kwargs": "self, date", - "line_number": 186 + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n },\n )\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 644 } }, { @@ -2881,16 +2932,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "1.9" ], - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", - "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", - "kwargs": "self, date", - "line_number": 130 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(object_list=self.object_list,\n date_list=self.date_list)\n context.update(extra_context)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 338 } }, { @@ -2898,16 +2949,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "1.9" ], - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "kwargs": "self, date", - "line_number": 242 + "name": "get_dated_items", + "docstring": "Obtain the list of dates and items.", + "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", + "kwargs": "self", + "line_number": 345 } }, { @@ -2915,16 +2966,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "1.9" ], - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", - "kwargs": "self, date", - "line_number": 71 + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", + "kwargs": "self, **lookup", + "line_number": 358 } }, { @@ -2932,16 +2983,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.9" ], - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "kwargs": "self, date", - "line_number": 596 + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", + "kwargs": "self, queryset, date_type=None, ordering='ASC'", + "line_number": 390 } }, { @@ -2949,16 +3000,16 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.9" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", + "name": "get_date_list_period", + "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", + "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", "kwargs": "self", - "line_number": 420 + "line_number": 384 } }, { @@ -2971,11 +3022,28 @@ "Django", "1.9" ], - "name": "get_dated_items", - "docstring": "Obtain the list of dates and items.", - "code": "def get_dated_items(self):\n \"\"\"\n Obtain the list of dates and items.\n \"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", + "name": "get_ordering", + "docstring": "Returns the field or fields to use for ordering the queryset; uses the\ndate field by default.", + "code": "def get_ordering(self):\n \"\"\"\n Returns the field or fields to use for ordering the queryset; uses the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", "kwargs": "self", - "line_number": 345 + "line_number": 351 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "BaseDayArchiveView", + "django.views.generic.dates", + "Django", + "1.9" + ], + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 596 } }, { @@ -3017,16 +3085,16 @@ "pk": null, "fields": { "klass": [ - "BaseWeekArchiveView", + "BaseTodayArchiveView", "django.views.generic.dates", "Django", "1.9" ], "name": "get_dated_items", "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", "kwargs": "self", - "line_number": 538 + "line_number": 625 } }, { @@ -3034,16 +3102,16 @@ "pk": null, "fields": { "klass": [ - "BaseTodayArchiveView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.9" ], "name": "get_dated_items", "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n return self._get_dated_items(datetime.date.today())\n", + "code": "def get_dated_items(self):\n \"\"\"\n Return (date_list, items, extra_context) for this request.\n \"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", "kwargs": "self", - "line_number": 625 + "line_number": 538 } }, { @@ -3068,16 +3136,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.9" ], - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", - "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = len(qs) == 0 if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': force_text(qs.model._meta.verbose_name_plural)\n })\n return qs\n", - "kwargs": "self, **lookup", - "line_number": 358 + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", + "kwargs": "self", + "line_number": 477 } }, { @@ -3090,11 +3158,11 @@ "Django", "1.9" ], - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", - "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", + "name": "get_allow_future", + "docstring": "Returns `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Returns `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", "kwargs": "self", - "line_number": 270 + "line_number": 278 } }, { @@ -3102,16 +3170,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "DateMixin", "django.views.generic.dates", "Django", "1.9" ], - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", - "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n name = force_text(queryset.model._meta.verbose_name_plural)\n raise Http404(_(\"No %(verbose_name_plural)s available\") %\n {'verbose_name_plural': name})\n return date_list\n", - "kwargs": "self, queryset, date_type=None, ordering='ASC'", - "line_number": 390 + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"\n Get the name of the date field to be used to filter by.\n \"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", + "kwargs": "self", + "line_number": 270 } }, { @@ -3119,16 +3187,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "DateMixin", "django.views.generic.dates", "Django", "1.9" ], - "name": "get_date_list_period", - "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or 'day'.", - "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or 'day'.\n \"\"\"\n return self.date_list_period\n", - "kwargs": "self", - "line_number": 384 + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", + "kwargs": "self, value", + "line_number": 298 } }, { @@ -3136,16 +3204,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.9" ], - "name": "get_day", - "docstring": "Return the day for which this view should display data.", - "code": "def get_day(self):\n \"\"\"\n Return the day for which this view should display data.\n \"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", - "kwargs": "self", - "line_number": 151 + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", + "kwargs": "self, date", + "line_number": 311 } }, { @@ -3158,45 +3226,11 @@ "Django", "1.9" ], - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", - "kwargs": "self", - "line_number": 144 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "FormMixin", - "django.views.generic.edit", - "Django", - "1.9" - ], - "name": "get_form", - "docstring": "Returns an instance of the form to be used in this view.", - "code": "def get_form(self, form_class=None):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", - "kwargs": "self, form_class=None", - "line_number": 68 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "FormMixin", - "django.views.generic.edit", - "Django", - "1.9" - ], - "name": "get_form_class", - "docstring": "Returns the form class to use in this view", - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", - "kwargs": "self", - "line_number": 62 + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date\n", + "kwargs": "self, date", + "line_number": 186 } }, { @@ -3204,16 +3238,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "get_form_class", - "docstring": "Returns the form class to use in this view.", - "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "name": "get_day", + "docstring": "Return the day for which this view should display data.", + "code": "def get_day(self):\n \"\"\"\n Return the day for which this view should display data.\n \"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", "kwargs": "self", - "line_number": 132 + "line_number": 151 } }, { @@ -3221,16 +3255,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", "kwargs": "self", - "line_number": 163 + "line_number": 144 } }, { @@ -3238,16 +3272,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "get_form_kwargs", - "docstring": "Returns the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", - "kwargs": "self", - "line_number": 76 + "name": "_get_next_day", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", + "kwargs": "self, date", + "line_number": 178 } }, { @@ -3255,16 +3289,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "get_initial", - "docstring": "Returns the initial data to use for forms on this view.", - "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", - "kwargs": "self", - "line_number": 50 + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "kwargs": "self, date", + "line_number": 166 } }, { @@ -3272,16 +3306,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "DayMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "get_login_url", - "docstring": "Override this method to override the login_url attribute.", - "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return force_text(login_url)\n", - "kwargs": "self", - "line_number": 19 + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "kwargs": "self, date", + "line_number": 172 } }, { @@ -3289,16 +3323,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", + "MonthMixin", "django.views.generic.dates", "Django", "1.9" ], - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", - "kwargs": "self", - "line_number": 477 + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"\n Return the start date of the previous interval.\n \"\"\"\n return date.replace(day=1)\n", + "kwargs": "self, date", + "line_number": 130 } }, { @@ -3340,16 +3374,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.9" ], - "name": "_get_next_day", + "name": "_get_next_month", "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n return date.replace(year=date.year + 1, month=1, day=1)\n else:\n return date.replace(month=date.month + 1, day=1)\n", "kwargs": "self, date", - "line_number": 178 + "line_number": 119 } }, { @@ -3357,16 +3391,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.9" ], - "name": "get_next_day", - "docstring": "Get the next valid day.", - "code": "def get_next_day(self, date):\n \"\"\"\n Get the next valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", "kwargs": "self, date", - "line_number": 166 + "line_number": 107 } }, { @@ -3379,11 +3413,11 @@ "Django", "1.9" ], - "name": "_get_next_month", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n return date.replace(year=date.year + 1, month=1, day=1)\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", "kwargs": "self, date", - "line_number": 119 + "line_number": 113 } }, { @@ -3391,16 +3425,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.9" ], - "name": "get_next_month", - "docstring": "Get the next valid month.", - "code": "def get_next_month(self, date):\n \"\"\"\n Get the next valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", "kwargs": "self, date", - "line_number": 107 + "line_number": 242 } }, { @@ -3442,16 +3476,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.9" ], - "name": "_get_next_year", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date.replace(year=date.year + 1, month=1, day=1)\n", + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", "kwargs": "self, date", - "line_number": 63 + "line_number": 228 } }, { @@ -3459,16 +3493,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "WeekMixin", "django.views.generic.dates", "Django", "1.9" ], - "name": "get_next_year", - "docstring": "Get the next valid year.", - "code": "def get_next_year(self, date):\n \"\"\"\n Get the next valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", - "kwargs": "self, date", - "line_number": 51 + "name": "get_week", + "docstring": "Return the week for which this view should display data", + "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", + "kwargs": "self", + "line_number": 207 } }, { @@ -3476,16 +3510,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WeekMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "get_object", - "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "kwargs": "self, queryset=None", - "line_number": 22 + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", + "kwargs": "self, date", + "line_number": 248 } }, { @@ -3493,16 +3527,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateDetailView", + "WeekMixin", "django.views.generic.dates", "Django", "1.9" ], - "name": "get_object", - "docstring": "Get the object this request displays.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Get the object this request displays.\n \"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n },\n )\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super(BaseDetailView, self).get_object(queryset=qs)\n", - "kwargs": "self, queryset=None", - "line_number": 644 + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "kwargs": "self", + "line_number": 200 } }, { @@ -3510,16 +3544,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset.", - "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset.\n \"\"\"\n return self.ordering\n", - "kwargs": "self", - "line_number": 55 + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"\n Return the start date of the current interval.\n \"\"\"\n return date.replace(month=1, day=1)\n", + "kwargs": "self, date", + "line_number": 71 } }, { @@ -3527,16 +3561,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "YearMixin", "django.views.generic.dates", "Django", "1.9" ], - "name": "get_ordering", - "docstring": "Returns the field or fields to use for ordering the queryset; uses the\ndate field by default.", - "code": "def get_ordering(self):\n \"\"\"\n Returns the field or fields to use for ordering the queryset; uses the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", - "kwargs": "self", - "line_number": 351 + "name": "_get_next_year", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date.replace(year=date.year + 1, month=1, day=1)\n", + "kwargs": "self, date", + "line_number": 63 } }, { @@ -3544,33 +3578,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "kwargs": "self, queryset", - "line_number": 86 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", - "Django", - "1.9" - ], - "name": "get_paginate_orphans", - "docstring": "Returns the maximum number of orphans extend the last page by when\npaginating.", - "code": "def get_paginate_orphans(self):\n \"\"\"\n Returns the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", - "kwargs": "self", - "line_number": 101 + "name": "get_next_year", + "docstring": "Get the next valid year.", + "code": "def get_next_year(self, date):\n \"\"\"\n Get the next valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", + "kwargs": "self, date", + "line_number": 51 } }, { @@ -3578,16 +3595,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", - "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", - "line_number": 92 + "name": "get_previous_year", + "docstring": "Get the previous valid year.", + "code": "def get_previous_year(self, date):\n \"\"\"\n Get the previous valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", + "kwargs": "self, date", + "line_number": 57 } }, { @@ -3595,16 +3612,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "YearMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "get_permission_denied_message", - "docstring": "Override this method to override the permission_denied_message attribute.", - "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", "kwargs": "self", - "line_number": 31 + "line_number": 36 } }, { @@ -3612,16 +3629,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "YearMixin", + "django.views.generic.dates", "Django", "1.9" ], - "name": "get_permission_required", - "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", - "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, six.string_types):\n perms = (self.permission_required, )\n else:\n perms = self.permission_required\n return perms\n", + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", "kwargs": "self", - "line_number": 66 + "line_number": 29 } }, { @@ -3629,16 +3646,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.9" ], - "name": "get_prefix", - "docstring": "Returns the prefix to use for forms on this view", - "code": "def get_prefix(self):\n \"\"\"\n Returns the prefix to use for forms on this view\n \"\"\"\n return self.prefix\n", - "kwargs": "self", - "line_number": 56 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 116 } }, { @@ -3646,16 +3663,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.9" ], - "name": "get_previous_day", - "docstring": "Get the previous valid day.", - "code": "def get_previous_day(self, date):\n \"\"\"\n Get the previous valid day.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", - "kwargs": "self, date", - "line_number": 172 + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the single object into the context dict.\n \"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super(SingleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 98 } }, { @@ -3663,16 +3680,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.9" ], - "name": "get_previous_month", - "docstring": "Get the previous valid month.", - "code": "def get_previous_month(self, date):\n \"\"\"\n Get the previous valid month.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", - "kwargs": "self, date", - "line_number": 113 + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"\n Get the name to use for the object.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n if obj._deferred:\n obj = obj._meta.proxy_for_model\n return obj._meta.model_name\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 85 } }, { @@ -3680,16 +3697,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.9" ], - "name": "get_previous_week", - "docstring": "Get the previous valid week.", - "code": "def get_previous_week(self, date):\n \"\"\"\n Get the previous valid week.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", - "kwargs": "self, date", - "line_number": 228 + "name": "get_object", + "docstring": "Returns the object the view is displaying.\n\nBy default this requires `self.queryset` and a `pk` or `slug` argument\nin the URLconf, but subclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Returns the object the view is displaying.\n By default this requires `self.queryset` and a `pk` or `slug` argument\n in the URLconf, but subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 22 } }, { @@ -3697,16 +3714,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.9" ], - "name": "get_previous_year", - "docstring": "Get the previous valid year.", - "code": "def get_previous_year(self, date):\n \"\"\"\n Get the previous valid year.\n \"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", - "kwargs": "self, date", - "line_number": 57 + "name": "get_queryset", + "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nNote that this method is called by the default implementation of\n`get_object` and may not be called if `get_object` is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n Note that this method is called by the default implementation of\n `get_object` and may not be called if `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", + "kwargs": "self", + "line_number": 59 } }, { @@ -3714,16 +3731,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.9" ], - "name": "get_queryset", - "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", - "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, six.string_types):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", "kwargs": "self", - "line_number": 26 + "line_number": 79 } }, { @@ -3731,16 +3748,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", + "SingleObjectTemplateResponseMixin", "django.views.generic.detail", "Django", "1.9" ], - "name": "get_queryset", - "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nNote that this method is called by the default implementation of\n`get_object` and may not be called if `get_object` is overridden.", - "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n Note that this method is called by the default implementation of\n `get_object` and may not be called if `get_object` is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n if self.object._deferred:\n object_meta = self.object._meta.proxy_for_model._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", "kwargs": "self", - "line_number": 59 + "line_number": 126 } }, { @@ -3748,16 +3765,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.9" ], - "name": "get_redirect_field_name", - "docstring": "Override this method to override the redirect_field_name attribute.", - "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", - "kwargs": "self", - "line_number": 37 + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 250 } }, { @@ -3765,16 +3782,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.9" ], - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the\nURL pattern match generating the redirect request\nare provided as kwargs to this method.", - "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the\n URL pattern match generating the redirect request\n are provided as kwargs to this method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n try:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n except NoReverseMatch:\n return None\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", - "kwargs": "self, *args, **kwargs", - "line_number": 170 + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 254 } }, { @@ -3782,16 +3799,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.9" ], - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", - "code": "def get_slug_field(self):\n \"\"\"\n Get the name of a slug field to be used to look up by slug.\n \"\"\"\n return self.slug_field\n", - "kwargs": "self", - "line_number": 79 + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 273 } }, { @@ -3799,16 +3816,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", + "BaseUpdateView", "django.views.generic.edit", "Django", "1.9" ], - "name": "get_success_url", - "docstring": "Returns the supplied URL.", - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n # force_text can be removed with deprecation warning\n self.success_url = force_text(self.success_url)\n if PERCENT_PLACEHOLDER_REGEX.search(self.success_url):\n warnings.warn(\n \"%()s placeholder style in success_url is deprecated. \"\n \"Please replace them by the {} Python format syntax.\",\n RemovedInDjango110Warning, stacklevel=2\n )\n url = self.success_url % self.object.__dict__\n else:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", - "kwargs": "self", - "line_number": 172 + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 277 } }, { @@ -3816,16 +3833,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", + "DeletionMixin", "django.views.generic.edit", "Django", "1.9" ], - "name": "get_success_url", - "docstring": "Returns the supplied success URL.", - "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", - "kwargs": "self", - "line_number": 92 + "name": "delete", + "docstring": "Calls the delete() method on the fetched object and then\nredirects to the success URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Calls the delete() method on the fetched object and then\n redirects to the success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 296 } }, { @@ -3850,33 +3867,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", - "Django", - "1.9" - ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", - "kwargs": "self", - "line_number": 184 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response is overridden. Returns the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response is overridden. Returns the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super(SingleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n if self.object._deferred:\n object_meta = self.object._meta.proxy_for_model._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", - "kwargs": "self", - "line_number": 126 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 307 } }, { @@ -3884,16 +3884,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "get_template_names", - "docstring": "Returns a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Returns a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "kwargs": "self", - "line_number": 138 + "name": "form_invalid", + "docstring": "If the form is invalid, re-render the context data with the\ndata-filled form and errors.", + "code": "def form_invalid(self, form):\n \"\"\"\n If the form is invalid, re-render the context data with the\n data-filled form and errors.\n \"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 110 } }, { @@ -3901,16 +3901,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "get_test_func", - "docstring": "Override this method to use a different test_func method.", - "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", - "kwargs": "self", - "line_number": 106 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, redirect to the supplied URL.\n \"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 104 } }, { @@ -3918,16 +3918,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "get_week", - "docstring": "Return the week for which this view should display data", - "code": "def get_week(self):\n \"\"\"\n Return the week for which this view should display data\n \"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", - "kwargs": "self", - "line_number": 207 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Insert the form into the context dict.\n \"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super(FormMixin, self).get_context_data(**kwargs)\n", + "kwargs": "self, **kwargs", + "line_number": 117 } }, { @@ -3935,16 +3935,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "kwargs": "self, date", - "line_number": 248 + "name": "get_form", + "docstring": "Returns an instance of the form to be used in this view.", + "code": "def get_form(self, form_class=None):\n \"\"\"\n Returns an instance of the form to be used in this view.\n \"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class=None", + "line_number": 68 } }, { @@ -3952,16 +3952,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "name": "get_form_class", + "docstring": "Returns the form class to use in this view", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view\n \"\"\"\n return self.form_class\n", "kwargs": "self", - "line_number": 200 + "line_number": 62 } }, { @@ -3969,16 +3969,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "get_year", - "docstring": "Return the year for which this view should display data.", - "code": "def get_year(self):\n \"\"\"\n Return the year for which this view should display data.\n \"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", "kwargs": "self", - "line_number": 36 + "line_number": 76 } }, { @@ -3986,16 +3986,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", + "name": "get_initial", + "docstring": "Returns the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"\n Returns the initial data to use for forms on this view.\n \"\"\"\n return self.initial.copy()\n", "kwargs": "self", - "line_number": 29 + "line_number": 50 } }, { @@ -4003,16 +4003,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "handle_no_permission", - "docstring": "", - "code": "def handle_no_permission(self):\n if self.raise_exception:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "name": "get_prefix", + "docstring": "Returns the prefix to use for forms on this view", + "code": "def get_prefix(self):\n \"\"\"\n Returns the prefix to use for forms on this view\n \"\"\"\n return self.prefix\n", "kwargs": "self", - "line_number": 43 + "line_number": 56 } }, { @@ -4020,16 +4020,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "has_permission", - "docstring": "Override this method to customize the way permissions are checked.", - "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "name": "get_success_url", + "docstring": "Returns the supplied success URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied success URL.\n \"\"\"\n if self.success_url:\n # Forcing possible reverse_lazy evaluation\n url = force_text(self.success_url)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n return url\n", "kwargs": "self", - "line_number": 82 + "line_number": 92 } }, { @@ -4037,16 +4037,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixinBase", + "django.views.generic.edit", "Django", "1.9" ], - "name": "head", - "docstring": "", - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 206 + "name": "__new__", + "docstring": "Create and return a new object. See help(type) for accurate signature.", + "code": "def __new__(cls, name, bases, attrs):\n get_form = attrs.get('get_form')\n if get_form and inspect.isfunction(get_form):\n try:\n inspect.getcallargs(get_form, None)\n except TypeError:\n warnings.warn(\n \"`%s.%s.get_form` method must define a default value for \"\n \"its `form_class` argument.\" % (attrs['__module__'], name),\n RemovedInDjango110Warning, stacklevel=2\n )\n def get_form_with_form_class(self, form_class=None):\n if form_class is None:\n form_class = self.get_form_class()\n return get_form(self, form_class=form_class)\n attrs['get_form'] = get_form_with_form_class\n return super(FormMixinBase, cls).__new__(cls, name, bases, attrs)\n", + "kwargs": "cls, name, bases, attrs", + "line_number": 20 } }, { @@ -4054,16 +4054,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "http_method_not_allowed", - "docstring": "", - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning('Method Not Allowed (%s): %s', request.method, request.path,\n extra={\n 'status_code': 405,\n 'request': request\n }\n )\n return http.HttpResponseNotAllowed(self._allowed_methods())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 90 + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"\n If the form is valid, save the associated model.\n \"\"\"\n self.object = form.save()\n return super(ModelFormMixin, self).form_valid(form)\n", + "kwargs": "self, form", + "line_number": 197 } }, { @@ -4071,16 +4071,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in six.iteritems(kwargs):\n setattr(self, key, value)\n", - "kwargs": "self, **kwargs", - "line_number": 36 + "name": "get_form_class", + "docstring": "Returns the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"\n Returns the form class to use in this view.\n \"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "kwargs": "self", + "line_number": 132 } }, { @@ -4088,16 +4088,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", - "kwargs": "self, value", - "line_number": 298 + "name": "get_form_kwargs", + "docstring": "Returns the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"\n Returns the keyword arguments for instantiating the form.\n \"\"\"\n kwargs = super(ModelFormMixin, self).get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 163 } }, { @@ -4105,16 +4105,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "kwargs": "self, date", - "line_number": 311 + "name": "get_success_url", + "docstring": "Returns the supplied URL.", + "code": "def get_success_url(self):\n \"\"\"\n Returns the supplied URL.\n \"\"\"\n if self.success_url:\n # force_text can be removed with deprecation warning\n self.success_url = force_text(self.success_url)\n if PERCENT_PLACEHOLDER_REGEX.search(self.success_url):\n warnings.warn(\n \"%()s placeholder style in success_url is deprecated. \"\n \"Please replace them by the {} Python format syntax.\",\n RemovedInDjango110Warning, stacklevel=2\n )\n url = self.success_url % self.object.__dict__\n else:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 172 } }, { @@ -4122,16 +4122,16 @@ "pk": null, "fields": { "klass": [ - "FormMixinBase", + "ProcessFormView", "django.views.generic.edit", "Django", "1.9" ], - "name": "__new__", - "docstring": "Create and return a new object. See help(type) for accurate signature.", - "code": "def __new__(cls, name, bases, attrs):\n get_form = attrs.get('get_form')\n if get_form and inspect.isfunction(get_form):\n try:\n inspect.getcallargs(get_form, None)\n except TypeError:\n warnings.warn(\n \"`%s.%s.get_form` method must define a default value for \"\n \"its `form_class` argument.\" % (attrs['__module__'], name),\n RemovedInDjango110Warning, stacklevel=2\n )\n def get_form_with_form_class(self, form_class=None):\n if form_class is None:\n form_class = self.get_form_class()\n return get_form(self, form_class=form_class)\n attrs['get_form'] = get_form_with_form_class\n return super(FormMixinBase, cls).__new__(cls, name, bases, attrs)\n", - "kwargs": "cls, name, bases, attrs", - "line_number": 20 + "name": "get", + "docstring": "Handles GET requests and instantiates a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"\n Handles GET requests and instantiates a blank version of the form.\n \"\"\"\n return self.render_to_response(self.get_context_data())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 209 } }, { @@ -4139,16 +4139,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.9" ], - "name": "options", - "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "name": "post", + "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 212 + "line_number": 215 } }, { @@ -4156,16 +4156,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.9" ], - "name": "options", - "docstring": "Handles responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n \"\"\"\n Handles responding to requests for the OPTIONS HTTP verb.\n \"\"\"\n response = http.HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 99 + "name": "put", + "docstring": "", + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 228 } }, { @@ -4173,16 +4173,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", + "BaseListView", "django.views.generic.list", "Django", "1.9" ], - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", - "kwargs": "self, queryset, page_size", - "line_number": 61 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if (self.get_paginate_by(self.object_list) is not None\n and hasattr(self.object_list, 'exists')):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\")\n % {'class_name': self.__class__.__name__})\n context = self.get_context_data()\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 158 } }, { @@ -4190,16 +4190,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "patch", - "docstring": "", - "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 221 + "name": "get_allow_empty", + "docstring": "Returns ``True`` if the view should display empty lists, and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Returns ``True`` if the view should display empty lists, and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 108 } }, { @@ -4207,16 +4207,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 209 + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"\n Get the context for this view.\n \"\"\"\n queryset = kwargs.pop('object_list', self.object_list)\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super(MultipleObjectMixin, self).get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 126 } }, { @@ -4224,16 +4224,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super(BaseCreateView, self).post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 254 + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"\n Get the name of the item to be used in the context.\n \"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 115 } }, { @@ -4241,16 +4241,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handles POST requests, instantiating a form instance with the passed\n POST variables and then checked for validity.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 215 + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset.", + "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset.\n \"\"\"\n return self.ordering\n", + "kwargs": "self", + "line_number": 55 } }, { @@ -4258,16 +4258,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "post", - "docstring": "Handles POST requests, instantiating a form instance with the passed\nPOST variables and then checked for validity.", - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super(BaseUpdateView, self).post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 277 + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 86 } }, { @@ -4275,16 +4275,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 307 + "name": "get_paginate_orphans", + "docstring": "Returns the maximum number of orphans extend the last page by when\npaginating.", + "code": "def get_paginate_orphans(self):\n \"\"\"\n Returns the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "kwargs": "self", + "line_number": 101 } }, { @@ -4292,16 +4292,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "put", - "docstring": "", - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 228 + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"\n Return an instance of the paginator for this view.\n \"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", + "line_number": 92 } }, { @@ -4309,16 +4309,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "put", - "docstring": "", - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 218 + "name": "get_queryset", + "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", + "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, six.string_types):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "kwargs": "self", + "line_number": 26 } }, { @@ -4326,16 +4326,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "render_to_response", - "docstring": "Returns a response, using the `response_class` for this\nview, with a template rendered with the given context.\n\nIf any keyword arguments are provided, they will be\npassed to the constructor of the response class.", - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Returns a response, using the `response_class` for this\n view, with a template rendered with the given context.\n If any keyword arguments are provided, they will be\n passed to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", - "kwargs": "self, context, **response_kwargs", - "line_number": 121 + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"\n Paginate the queryset, if needed.\n \"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 61 } }, { @@ -4343,16 +4343,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.9" ], - "name": "test_func", - "docstring": "", - "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super(MultipleObjectTemplateResponseMixin, self).get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", "kwargs": "self", - "line_number": 101 + "line_number": 184 } }, { @@ -4360,14 +4360,14 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], "child": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], @@ -4379,14 +4379,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], @@ -4398,14 +4398,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "1.9" ], @@ -4417,14 +4417,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", + "View", "django.views.generic.base", "Django", "1.9" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "1.9" ], @@ -4442,8 +4442,8 @@ "1.9" ], "child": [ - "FormView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "1.9" ], @@ -4455,18 +4455,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", + "ContextMixin", "django.views.generic.base", "Django", "1.9" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "1.9" ], - "order": 0 + "order": 1 } }, { @@ -4474,7 +4474,7 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", + "View", "django.views.generic.base", "Django", "1.9" @@ -4485,7 +4485,7 @@ "Django", "1.9" ], - "order": 0 + "order": 2 } }, { @@ -4493,14 +4493,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.9" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.9" ], @@ -4512,18 +4512,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "RedirectView", - "django.views.generic.base", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 1 } }, { @@ -4531,14 +4531,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "1.9" ], @@ -4550,13 +4550,13 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", + "YearMixin", "django.views.generic.dates", "Django", "1.9" ], "child": [ - "BaseTodayArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.9" @@ -4569,18 +4569,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "1.9" ], "child": [ - "BaseYearArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 1 } }, { @@ -4588,18 +4588,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", + "DayMixin", "django.views.generic.dates", "Django", "1.9" ], "child": [ - "BaseWeekArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 2 } }, { @@ -4607,18 +4607,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", + "DateMixin", "django.views.generic.dates", "Django", "1.9" ], "child": [ - "BaseMonthArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 3 } }, { @@ -4626,18 +4626,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.9" ], "child": [ - "BaseDayArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 4 } }, { @@ -4645,13 +4645,13 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], "child": [ - "BaseDateDetailView", + "BaseDateListView", "django.views.generic.dates", "Django", "1.9" @@ -4664,18 +4664,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DateMixin", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 1 } }, { @@ -4683,18 +4683,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "1.9" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 2 } }, { @@ -4702,14 +4702,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.9" ], @@ -4721,18 +4721,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "CreateView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 1 } }, { @@ -4740,18 +4740,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "DetailView", - "django.views.generic.detail", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 2 } }, { @@ -4759,18 +4759,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "DateDetailView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 3 } }, { @@ -4778,14 +4778,14 @@ "pk": null, "fields": { "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.9" ], @@ -4797,18 +4797,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 1 } }, { @@ -4816,18 +4816,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 2 } }, { @@ -4835,14 +4835,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.9" ], @@ -4854,14 +4854,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.9" ], @@ -4873,18 +4873,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 1 } }, { @@ -4892,18 +4892,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "YearArchiveView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 2 } }, { @@ -4911,13 +4911,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "WeekArchiveView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.9" @@ -4930,18 +4930,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "TodayArchiveView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 1 } }, { @@ -4949,13 +4949,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.9" ], "child": [ - "MonthArchiveView", + "DateDetailView", "django.views.generic.dates", "Django", "1.9" @@ -4968,18 +4968,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "DayArchiveView", + "DateDetailView", "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 1 } }, { @@ -4993,7 +4993,7 @@ "1.9" ], "child": [ - "ArchiveIndexView", + "DayArchiveView", "django.views.generic.dates", "Django", "1.9" @@ -5006,18 +5006,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "BaseListView", - "django.views.generic.list", + "DayArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 1 } }, { @@ -5025,13 +5025,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", + "MultipleObjectTemplateResponseMixin", "django.views.generic.list", "Django", "1.9" ], "child": [ - "BaseDateListView", + "MonthArchiveView", "django.views.generic.dates", "Django", "1.9" @@ -5044,18 +5044,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "MonthArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 1 } }, { @@ -5063,14 +5063,14 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.9" ], "child": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.9" ], @@ -5082,18 +5082,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", + "TodayArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "order": 0 + "order": 1 } }, { @@ -5101,18 +5101,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.9" ], "child": [ - "TemplateView", - "django.views.generic.base", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5120,14 +5120,14 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "WeekArchiveView", + "django.views.generic.dates", "Django", "1.9" ], @@ -5139,18 +5139,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.9" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5158,14 +5158,14 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "1.9" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "YearArchiveView", + "django.views.generic.dates", "Django", "1.9" ], @@ -5177,18 +5177,18 @@ "pk": null, "fields": { "parent": [ - "BaseCreateView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.9" ], "child": [ - "CreateView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5196,14 +5196,14 @@ "pk": null, "fields": { "parent": [ - "BaseDeleteView", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "1.9" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.9" ], @@ -5215,18 +5215,18 @@ "pk": null, "fields": { "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.9" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5234,14 +5234,14 @@ "pk": null, "fields": { "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "1.9" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "1.9" ], @@ -5253,18 +5253,18 @@ "pk": null, "fields": { "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.9" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5272,18 +5272,18 @@ "pk": null, "fields": { "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.9" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5291,18 +5291,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.9" ], "child": [ - "BaseDeleteView", + "BaseCreateView", "django.views.generic.edit", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5310,14 +5310,14 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.9" ], "child": [ - "DetailView", - "django.views.generic.detail", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.9" ], @@ -5329,18 +5329,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "DeletionMixin", + "django.views.generic.edit", "Django", "1.9" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5348,13 +5348,13 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", + "BaseDetailView", "django.views.generic.detail", "Django", "1.9" ], "child": [ - "ModelFormMixin", + "BaseDeleteView", "django.views.generic.edit", "Django", "1.9" @@ -5367,18 +5367,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "BaseFormView", + "django.views.generic.edit", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5386,13 +5386,13 @@ "pk": null, "fields": { "parent": [ - "BaseFormView", + "ProcessFormView", "django.views.generic.edit", "Django", "1.9" ], "child": [ - "FormView", + "BaseFormView", "django.views.generic.edit", "Django", "1.9" @@ -5405,18 +5405,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.9" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5424,13 +5424,13 @@ "pk": null, "fields": { "parent": [ - "BaseUpdateView", + "ProcessFormView", "django.views.generic.edit", "Django", "1.9" ], "child": [ - "UpdateView", + "BaseUpdateView", "django.views.generic.edit", "Django", "1.9" @@ -5443,18 +5443,18 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.9" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5462,14 +5462,14 @@ "pk": null, "fields": { "parent": [ - "BaseListView", - "django.views.generic.list", + "BaseCreateView", + "django.views.generic.edit", "Django", "1.9" ], "child": [ - "ListView", - "django.views.generic.list", + "CreateView", + "django.views.generic.edit", "Django", "1.9" ], @@ -5481,18 +5481,18 @@ "pk": null, "fields": { "parent": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.9" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5500,14 +5500,14 @@ "pk": null, "fields": { "parent": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "1.9" ], "child": [ - "WeekArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "1.9" ], @@ -5519,18 +5519,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.9" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5538,18 +5538,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.9" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5557,14 +5557,14 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "1.9" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "1.9" ], @@ -5576,18 +5576,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "1.9" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.9" ], - "order": 1 + "order": 0 } }, { @@ -5595,14 +5595,14 @@ "pk": null, "fields": { "parent": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "1.9" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "1.9" ], @@ -5620,12 +5620,12 @@ "1.9" ], "child": [ - "TemplateView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "1.9" ], - "order": 2 + "order": 0 } }, { @@ -5633,18 +5633,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "1.9" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.9" ], - "order": 2 + "order": 0 } }, { @@ -5652,18 +5652,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "1.9" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "1.9" ], - "order": 2 + "order": 1 } }, { @@ -5671,18 +5671,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.9" ], - "order": 2 + "order": 0 } }, { @@ -5690,18 +5690,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "1.9" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.9" ], - "order": 2 + "order": 1 } }, { @@ -5709,18 +5709,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.9" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.9" ], - "order": 2 + "order": 0 } }, { @@ -5728,18 +5728,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "1.9" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "1.9" ], - "order": 3 + "order": 1 } }, { @@ -5747,18 +5747,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "1.9" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "1.9" ], - "order": 3 + "order": 0 } }, { @@ -5766,18 +5766,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "1.9" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "1.9" ], - "order": 4 + "order": 0 } } ] diff --git a/cbv/fixtures/2.0.json b/cbv/fixtures/2.0.json index f99193b6..7db9cf46 100644 --- a/cbv/fixtures/2.0.json +++ b/cbv/fixtures/2.0.json @@ -16,9 +16,9 @@ "Django", "2.0" ], - "name": "django.views.generic", + "name": "django.contrib.auth.mixins", "docstring": "", - "filename": "/django/views/generic/__init__.py" + "filename": "/django/contrib/auth/mixins.py" } }, { @@ -28,9 +28,9 @@ "Django", "2.0" ], - "name": "django.views.generic.base", + "name": "django.contrib.auth.views", "docstring": "", - "filename": "/django/views/generic/base.py" + "filename": "/django/contrib/auth/views.py" } }, { @@ -40,9 +40,9 @@ "Django", "2.0" ], - "name": "django.views.generic.dates", + "name": "django.views.generic", "docstring": "", - "filename": "/django/views/generic/dates.py" + "filename": "/django/views/generic/__init__.py" } }, { @@ -52,9 +52,9 @@ "Django", "2.0" ], - "name": "django.views.generic.detail", + "name": "django.views.generic.base", "docstring": "", - "filename": "/django/views/generic/detail.py" + "filename": "/django/views/generic/base.py" } }, { @@ -64,9 +64,9 @@ "Django", "2.0" ], - "name": "django.views.generic.edit", + "name": "django.views.generic.dates", "docstring": "", - "filename": "/django/views/generic/edit.py" + "filename": "/django/views/generic/dates.py" } }, { @@ -76,9 +76,9 @@ "Django", "2.0" ], - "name": "django.views.generic.list", + "name": "django.views.generic.detail", "docstring": "", - "filename": "/django/views/generic/list.py" + "filename": "/django/views/generic/detail.py" } }, { @@ -88,9 +88,9 @@ "Django", "2.0" ], - "name": "django.contrib.auth.views", + "name": "django.views.generic.edit", "docstring": "", - "filename": "/django/contrib/auth/views.py" + "filename": "/django/views/generic/edit.py" } }, { @@ -100,9 +100,9 @@ "Django", "2.0" ], - "name": "django.contrib.auth.mixins", + "name": "django.views.generic.list", "docstring": "", - "filename": "/django/contrib/auth/mixins.py" + "filename": "/django/views/generic/list.py" } }, { @@ -1010,13 +1010,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], - "name": "allow_empty", - "value": "True", + "name": "login_url", + "value": "None", "line_number": -1 } }, @@ -1025,13 +1025,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], - "name": "allow_empty", - "value": "False", + "name": "permission_denied_message", + "value": "''", "line_number": -1 } }, @@ -1040,12 +1040,12 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], - "name": "allow_future", + "name": "raise_exception", "value": "False", "line_number": -1 } @@ -1055,13 +1055,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], - "name": "args", - "value": "", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1070,12 +1070,12 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], - "name": "authentication_form", + "name": "permission_required", "value": "None", "line_number": -1 } @@ -1085,13 +1085,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "__cause__", - "value": "", + "name": "authentication_form", + "value": "None", "line_number": -1 } }, @@ -1100,14 +1100,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "content_type", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 153 } }, { @@ -1115,13 +1115,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "__context__", - "value": "", + "name": "redirect_authenticated_user", + "value": "False", "line_number": -1 } }, @@ -1130,13 +1130,13 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "context_object_name", - "value": "'latest'", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1145,13 +1145,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "LoginView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "context_object_name", - "value": "None", + "name": "template_name", + "value": "'registration/login.html'", "line_number": -1 } }, @@ -1160,12 +1160,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "LogoutView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "context_object_name", + "name": "next_page", "value": "None", "line_number": -1 } @@ -1175,13 +1175,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "date_field", - "value": "None", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1190,13 +1190,13 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "date_list_period", - "value": "'day'", + "name": "template_name", + "value": "'registration/logged_out.html'", "line_number": -1 } }, @@ -1205,13 +1205,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "date_list_period", - "value": "'year'", + "name": "template_name", + "value": "'registration/password_change_done.html'", "line_number": -1 } }, @@ -1220,13 +1220,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "date_list_period", - "value": "'month'", + "name": "title", + "value": "gettext_lazy('Password change successful')", "line_number": -1 } }, @@ -1235,14 +1235,14 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "day", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 345 } }, { @@ -1250,13 +1250,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "day_format", - "value": "'%d'", + "name": "success_url", + "value": "reverse_lazy('password_change_done')", "line_number": -1 } }, @@ -1265,13 +1265,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "__delattr__", - "value": "", + "name": "template_name", + "value": "'registration/password_change_form.html'", "line_number": -1 } }, @@ -1280,13 +1280,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordChangeView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "email_template_name", - "value": "'registration/password_reset_email.html'", + "name": "title", + "value": "gettext_lazy('Password change')", "line_number": -1 } }, @@ -1295,8 +1295,8 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", - "django.views.generic.base", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.0" ], @@ -1310,13 +1310,13 @@ "pk": null, "fields": { "klass": [ - "PasswordContextMixin", + "PasswordResetCompleteView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "extra_context", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_complete.html'", "line_number": -1 } }, @@ -1325,13 +1325,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetCompleteView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "extra_email_context", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password reset complete')", "line_number": -1 } }, @@ -1340,14 +1340,14 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "fields", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 301 } }, { @@ -1355,13 +1355,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "form_class", - "value": "None", + "name": "post_reset_login", + "value": "False", "line_number": -1 } }, @@ -1370,14 +1370,14 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "form_class", - "value": "", - "line_number": 153 + "name": "post_reset_login_backend", + "value": "None", + "line_number": -1 } }, { @@ -1385,14 +1385,14 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "form_class", - "value": "", - "line_number": 233 + "name": "success_url", + "value": "reverse_lazy('password_reset_complete')", + "line_number": -1 } }, { @@ -1400,14 +1400,14 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "form_class", - "value": "", - "line_number": 345 + "name": "template_name", + "value": "'registration/password_reset_confirm.html'", + "line_number": -1 } }, { @@ -1420,9 +1420,9 @@ "Django", "2.0" ], - "name": "form_class", - "value": "", - "line_number": 301 + "name": "title", + "value": "gettext_lazy('Enter new password')", + "line_number": -1 } }, { @@ -1430,13 +1430,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "from_email", - "value": "None", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1445,13 +1445,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "__getattribute__", - "value": "", + "name": "template_name", + "value": "'registration/password_reset_done.html'", "line_number": -1 } }, @@ -1460,13 +1460,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetDoneView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "html_email_template_name", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password reset sent')", "line_number": -1 } }, @@ -1475,13 +1475,13 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "http_method_names", - "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "name": "email_template_name", + "value": "'registration/password_reset_email.html'", "line_number": -1 } }, @@ -1490,13 +1490,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "__init__", - "value": "", + "name": "extra_email_context", + "value": "None", "line_number": -1 } }, @@ -1505,14 +1505,14 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "initial", - "value": "{}", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 233 } }, { @@ -1520,12 +1520,12 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "login_url", + "name": "from_email", "value": "None", "line_number": -1 } @@ -1535,13 +1535,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "make_object_list", - "value": "False", + "name": "html_email_template_name", + "value": "None", "line_number": -1 } }, @@ -1550,13 +1550,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "model", - "value": "None", + "name": "subject_template_name", + "value": "'registration/password_reset_subject.txt'", "line_number": -1 } }, @@ -1565,13 +1565,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "model", - "value": "None", + "name": "success_url", + "value": "reverse_lazy('password_reset_done')", "line_number": -1 } }, @@ -1580,13 +1580,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "month", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_form.html'", "line_number": -1 } }, @@ -1595,13 +1595,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "month_format", - "value": "'%b'", + "name": "title", + "value": "gettext_lazy('Password reset')", "line_number": -1 } }, @@ -1610,13 +1610,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", + "PasswordResetView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "next_page", - "value": "None", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1625,13 +1625,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "ordering", - "value": "None", + "name": "success_url_allowed_hosts", + "value": "set()", "line_number": -1 } }, @@ -1640,13 +1640,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "page_kwarg", - "value": "'page'", + "name": "args", + "value": "", "line_number": -1 } }, @@ -1655,13 +1655,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "paginate_by", - "value": "None", + "name": "__cause__", + "value": "", "line_number": -1 } }, @@ -1670,13 +1670,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "paginate_orphans", - "value": "0", + "name": "__context__", + "value": "", "line_number": -1 } }, @@ -1685,14 +1685,14 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "paginator_class", - "value": "", - "line_number": 25 + "name": "__delattr__", + "value": "", + "line_number": -1 } }, { @@ -1700,13 +1700,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "pattern_name", - "value": "None", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -1715,13 +1715,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "permanent", - "value": "False", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -1730,13 +1730,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "permission_denied_message", - "value": "''", + "name": "__reduce__", + "value": "", "line_number": -1 } }, @@ -1745,13 +1745,13 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "permission_required", - "value": "None", + "name": "__repr__", + "value": "", "line_number": -1 } }, @@ -1760,13 +1760,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "pk_url_kwarg", - "value": "'pk'", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -1775,13 +1775,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "post_reset_login", - "value": "False", + "name": "__setstate__", + "value": "", "line_number": -1 } }, @@ -1790,13 +1790,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "post_reset_login_backend", - "value": "None", + "name": "__str__", + "value": "", "line_number": -1 } }, @@ -1805,13 +1805,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "prefix", - "value": "None", + "name": "__suppress_context__", + "value": "", "line_number": -1 } }, @@ -1820,13 +1820,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "query_pk_and_slug", - "value": "False", + "name": "__traceback__", + "value": "", "line_number": -1 } }, @@ -1835,13 +1835,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "2.0" ], - "name": "queryset", - "value": "None", + "name": "with_traceback", + "value": "", "line_number": -1 } }, @@ -1850,12 +1850,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "ContextMixin", + "django.views.generic.base", "Django", "2.0" ], - "name": "queryset", + "name": "extra_context", "value": "None", "line_number": -1 } @@ -1870,8 +1870,8 @@ "Django", "2.0" ], - "name": "query_string", - "value": "False", + "name": "pattern_name", + "value": "None", "line_number": -1 } }, @@ -1880,12 +1880,12 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "RedirectView", + "django.views.generic.base", "Django", "2.0" ], - "name": "raise_exception", + "name": "permanent", "value": "False", "line_number": -1 } @@ -1895,12 +1895,12 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "2.0" ], - "name": "redirect_authenticated_user", + "name": "query_string", "value": "False", "line_number": -1 } @@ -1910,13 +1910,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "RedirectView", + "django.views.generic.base", "Django", "2.0" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "url", + "value": "None", "line_number": -1 } }, @@ -1925,13 +1925,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.0" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "content_type", + "value": "None", "line_number": -1 } }, @@ -1940,14 +1940,14 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.0" ], - "name": "redirect_field_name", - "value": "'next'", - "line_number": -1 + "name": "response_class", + "value": "", + "line_number": 139 } }, { @@ -1955,13 +1955,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.0" ], - "name": "__reduce__", - "value": "", + "name": "template_engine", + "value": "None", "line_number": -1 } }, @@ -1970,13 +1970,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.0" ], - "name": "__repr__", - "value": "", + "name": "template_name", + "value": "None", "line_number": -1 } }, @@ -1985,14 +1985,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", + "View", "django.views.generic.base", "Django", "2.0" ], - "name": "response_class", - "value": "", - "line_number": 139 + "name": "http_method_names", + "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "line_number": -1 } }, { @@ -2000,13 +2000,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "__setattr__", - "value": "", + "name": "template_name_suffix", + "value": "'_archive'", "line_number": -1 } }, @@ -2015,13 +2015,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "__setstate__", - "value": "", + "name": "context_object_name", + "value": "'latest'", "line_number": -1 } }, @@ -2030,13 +2030,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "slug_field", - "value": "'slug'", + "name": "allow_empty", + "value": "False", "line_number": -1 } }, @@ -2045,13 +2045,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "slug_url_kwarg", - "value": "'slug'", + "name": "date_list_period", + "value": "'year'", "line_number": -1 } }, @@ -2060,13 +2060,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "__str__", - "value": "", + "name": "date_list_period", + "value": "'day'", "line_number": -1 } }, @@ -2075,13 +2075,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "subject_template_name", - "value": "'registration/password_reset_subject.txt'", + "name": "date_list_period", + "value": "'month'", "line_number": -1 } }, @@ -2090,13 +2090,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_complete')", + "name": "make_object_list", + "value": "False", "line_number": -1 } }, @@ -2105,13 +2105,13 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "success_url", - "value": "None", + "name": "allow_future", + "value": "False", "line_number": -1 } }, @@ -2120,13 +2120,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "success_url", - "value": "reverse_lazy('password_change_done')", + "name": "date_field", + "value": "None", "line_number": -1 } }, @@ -2135,13 +2135,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "success_url", - "value": "None", + "name": "uses_datetime_field", + "value": "", "line_number": -1 } }, @@ -2150,13 +2150,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_done')", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2165,13 +2165,13 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "success_url_allowed_hosts", - "value": "set()", + "name": "day", + "value": "None", "line_number": -1 } }, @@ -2180,13 +2180,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "DayMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "__suppress_context__", - "value": "", + "name": "day_format", + "value": "'%d'", "line_number": -1 } }, @@ -2195,13 +2195,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MonthArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "template_engine", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_month'", "line_number": -1 } }, @@ -2210,13 +2210,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "template_name", - "value": "'registration/password_reset_done.html'", + "name": "month", + "value": "None", "line_number": -1 } }, @@ -2225,13 +2225,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "template_name", - "value": "'registration/password_change_done.html'", + "name": "month_format", + "value": "'%b'", "line_number": -1 } }, @@ -2240,13 +2240,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "TodayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "template_name", - "value": "'registration/login.html'", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2255,13 +2255,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "template_name", - "value": "'registration/logged_out.html'", + "name": "template_name_suffix", + "value": "'_archive_week'", "line_number": -1 } }, @@ -2270,13 +2270,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "template_name", - "value": "'registration/password_change_form.html'", + "name": "week", + "value": "None", "line_number": -1 } }, @@ -2285,13 +2285,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "template_name", - "value": "'registration/password_reset_form.html'", + "name": "week_format", + "value": "'%U'", "line_number": -1 } }, @@ -2300,13 +2300,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "YearArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "template_name", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_year'", "line_number": -1 } }, @@ -2315,13 +2315,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "template_name", - "value": "'registration/password_reset_confirm.html'", + "name": "year", + "value": "None", "line_number": -1 } }, @@ -2330,13 +2330,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "template_name", - "value": "'registration/password_reset_complete.html'", + "name": "year_format", + "value": "'%Y'", "line_number": -1 } }, @@ -2345,12 +2345,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "2.0" ], - "name": "template_name_field", + "name": "context_object_name", "value": "None", "line_number": -1 } @@ -2360,13 +2360,13 @@ "pk": null, "fields": { "klass": [ - "CreateView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.0" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2375,13 +2375,13 @@ "pk": null, "fields": { "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.0" ], - "name": "template_name_suffix", - "value": "'_archive'", + "name": "pk_url_kwarg", + "value": "'pk'", "line_number": -1 } }, @@ -2390,13 +2390,13 @@ "pk": null, "fields": { "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.0" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "query_pk_and_slug", + "value": "False", "line_number": -1 } }, @@ -2405,13 +2405,13 @@ "pk": null, "fields": { "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.0" ], - "name": "template_name_suffix", - "value": "'_archive_week'", + "name": "queryset", + "value": "None", "line_number": -1 } }, @@ -2420,13 +2420,13 @@ "pk": null, "fields": { "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.0" ], - "name": "template_name_suffix", - "value": "'_archive_year'", + "name": "slug_field", + "value": "'slug'", "line_number": -1 } }, @@ -2435,13 +2435,13 @@ "pk": null, "fields": { "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.0" ], - "name": "template_name_suffix", - "value": "'_archive_month'", + "name": "slug_url_kwarg", + "value": "'slug'", "line_number": -1 } }, @@ -2450,13 +2450,13 @@ "pk": null, "fields": { "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.0" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "template_name_field", + "value": "None", "line_number": -1 } }, @@ -2480,13 +2480,13 @@ "pk": null, "fields": { "klass": [ - "DeleteView", + "CreateView", "django.views.generic.edit", "Django", "2.0" ], "name": "template_name_suffix", - "value": "'_confirm_delete'", + "value": "'_form'", "line_number": -1 } }, @@ -2495,13 +2495,13 @@ "pk": null, "fields": { "klass": [ - "UpdateView", + "DeleteView", "django.views.generic.edit", "Django", "2.0" ], "name": "template_name_suffix", - "value": "'_form'", + "value": "'_confirm_delete'", "line_number": -1 } }, @@ -2510,13 +2510,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "template_name_suffix", - "value": "'_list'", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2525,13 +2525,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "title", - "value": "gettext_lazy('Password reset complete')", + "name": "form_class", + "value": "None", "line_number": -1 } }, @@ -2540,13 +2540,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "title", - "value": "gettext_lazy('Password reset')", + "name": "initial", + "value": "{}", "line_number": -1 } }, @@ -2555,13 +2555,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "title", - "value": "gettext_lazy('Password reset sent')", + "name": "prefix", + "value": "None", "line_number": -1 } }, @@ -2570,13 +2570,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "title", - "value": "gettext_lazy('Enter new password')", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2585,13 +2585,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "title", - "value": "gettext_lazy('Password change')", + "name": "fields", + "value": "None", "line_number": -1 } }, @@ -2600,13 +2600,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "UpdateView", + "django.views.generic.edit", "Django", "2.0" ], - "name": "title", - "value": "gettext_lazy('Password change successful')", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -2615,13 +2615,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "token_generator", - "value": "", + "name": "allow_empty", + "value": "True", "line_number": -1 } }, @@ -2630,13 +2630,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "token_generator", - "value": "", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -2645,13 +2645,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "__traceback__", - "value": "", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2660,12 +2660,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "url", + "name": "ordering", "value": "None", "line_number": -1 } @@ -2675,13 +2675,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "uses_datetime_field", - "value": "", + "name": "page_kwarg", + "value": "'page'", "line_number": -1 } }, @@ -2690,12 +2690,12 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "week", + "name": "paginate_by", "value": "None", "line_number": -1 } @@ -2705,13 +2705,13 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "week_format", - "value": "'%U'", + "name": "paginate_orphans", + "value": "0", "line_number": -1 } }, @@ -2720,14 +2720,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "with_traceback", - "value": "", - "line_number": -1 + "name": "paginator_class", + "value": "", + "line_number": 25 } }, { @@ -2735,12 +2735,12 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "year", + "name": "queryset", "value": "None", "line_number": -1 } @@ -2750,13 +2750,13 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "year_format", - "value": "'%Y'", + "name": "template_name_suffix", + "value": "'_list'", "line_number": -1 } }, @@ -2765,16 +2765,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], - "name": "_allowed_methods", - "docstring": "", - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "name": "get_login_url", + "docstring": "Override this method to override the login_url attribute.", + "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", "kwargs": "self", - "line_number": 105 + "line_number": 17 } }, { @@ -2782,16 +2782,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], - "name": "as_view", - "docstring": "Main entry point for a request-response process.", - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "kwargs": "cls, **initkwargs", - "line_number": 49 + "name": "get_permission_denied_message", + "docstring": "Override this method to override the permission_denied_message attribute.", + "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "kwargs": "self", + "line_number": 29 } }, { @@ -2799,16 +2799,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], - "name": "delete", - "docstring": "", - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 202 + "name": "get_redirect_field_name", + "docstring": "Override this method to override the redirect_field_name attribute.", + "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", + "kwargs": "self", + "line_number": 35 } }, { @@ -2816,16 +2816,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], - "name": "delete", - "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 206 + "name": "handle_no_permission", + "docstring": "", + "code": "def handle_no_permission(self):\n if self.raise_exception:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "kwargs": "self", + "line_number": 41 } }, { @@ -2833,16 +2833,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 572 + "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 49 } }, { @@ -2850,16 +2850,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n if self.redirect_authenticated_user and self.request.user.is_authenticated:\n redirect_to = self.get_success_url()\n if redirect_to == self.request.path:\n raise ValueError(\n \"Redirection loop for authenticated user detected. Check that \"\n \"your LOGIN_REDIRECT_URL doesn't point to a login page.\"\n )\n return HttpResponseRedirect(redirect_to)\n return super().dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 54 + "line_number": 82 } }, { @@ -2872,11 +2872,11 @@ "Django", "2.0" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 82 + "name": "get_permission_required", + "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", + "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required, )\n else:\n perms = self.permission_required\n return perms\n", + "kwargs": "self", + "line_number": 59 } }, { @@ -2884,16 +2884,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == INTERNAL_RESET_URL_TOKEN:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, INTERNAL_RESET_URL_TOKEN)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, *args, **kwargs", - "line_number": 442 + "name": "has_permission", + "docstring": "Override this method to customize the way permissions are checked.", + "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "kwargs": "self", + "line_number": 75 } }, { @@ -2918,16 +2918,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 595 + "name": "get_test_func", + "docstring": "Override this method to use a different test_func method.", + "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", + "kwargs": "self", + "line_number": 99 } }, { @@ -2935,16 +2935,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], - "name": "dispatch", + "name": "test_func", "docstring": "", - "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 137 + "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "kwargs": "self", + "line_number": 94 } }, { @@ -2952,16 +2952,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "2.0" ], "name": "dispatch", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n if self.redirect_authenticated_user and self.request.user.is_authenticated:\n redirect_to = self.get_success_url()\n if redirect_to == self.request.path:\n raise ValueError(\n \"Redirection loop for authenticated user detected. Check that \"\n \"your LOGIN_REDIRECT_URL doesn't point to a login page.\"\n )\n return HttpResponseRedirect(redirect_to)\n return super().dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 81 + "line_number": 54 } }, { @@ -2969,16 +2969,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "LoginView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 405 + "name": "form_valid", + "docstring": "Security check complete. Log the user in.", + "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 93 } }, { @@ -2986,16 +2986,16 @@ "pk": null, "fields": { "klass": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", + "LoginView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 49 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n })\n if self.extra_context is not None:\n context.update(self.extra_context)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 98 } }, { @@ -3003,16 +3003,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "form_invalid", - "docstring": "If the form is invalid, render the invalid form.", - "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "kwargs": "self, form", - "line_number": 59 + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "kwargs": "self", + "line_number": 85 } }, { @@ -3020,16 +3020,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", + "LoginView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 485 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "kwargs": "self", + "line_number": 88 } }, { @@ -3037,16 +3037,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 55 + "name": "get_redirect_url", + "docstring": "Return the user-originating redirect URL if it's safe.", + "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = is_safe_url(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", + "kwargs": "self", + "line_number": 72 } }, { @@ -3054,16 +3054,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "LoginView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 409 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", + "kwargs": "self", + "line_number": 68 } }, { @@ -3071,16 +3071,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "LogoutView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 123 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 137 } }, { @@ -3088,16 +3088,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "LogoutView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "form_valid", - "docstring": "Security check complete. Log the user in.", - "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 93 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n })\n if self.extra_context is not None:\n context.update(self.extra_context)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 175 } }, { @@ -3105,16 +3105,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "LogoutView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 583 + "name": "get_next_page", + "docstring": "", + "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = is_safe_url(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", + "kwargs": "self", + "line_number": 150 } }, { @@ -3122,16 +3122,16 @@ "pk": null, "fields": { "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "LogoutView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "name": "post", + "docstring": "Logout may be done via POST.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 104 + "line_number": 146 } }, { @@ -3139,16 +3139,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 131 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 595 } }, { @@ -3156,16 +3156,16 @@ "pk": null, "fields": { "klass": [ - "TemplateView", - "django.views.generic.base", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "get", + "name": "dispatch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 149 + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 572 } }, { @@ -3173,16 +3173,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 166 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 583 } }, { @@ -3190,16 +3190,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 188 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "kwargs": "self", + "line_number": 578 } }, { @@ -3207,16 +3207,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "get", + "name": "get_context_data", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 179 + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['title'] = self.title\n if self.extra_context is not None:\n context.update(self.extra_context)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 385 } }, { @@ -3224,16 +3224,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "get", + "name": "get_context_data", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 298 + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 509 } }, { @@ -3241,16 +3241,16 @@ "pk": null, "fields": { "klass": [ - "BaseListView", - "django.views.generic.list", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "get", + "name": "dispatch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\") % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 141 + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == INTERNAL_RESET_URL_TOKEN:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, INTERNAL_RESET_URL_TOKEN)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", + "kwargs": "self, *args, **kwargs", + "line_number": 442 } }, { @@ -3258,33 +3258,50 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "get_allow_empty", - "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", - "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "kwargs": "self", - "line_number": 97 - } -}, -{ + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 485 + } +}, +{ "model": "cbv.method", "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "get_allow_future", - "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", - "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 492 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "PasswordResetConfirmView", + "django.contrib.auth.views", + "Django", + "2.0" + ], + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", "kwargs": "self", - "line_number": 240 + "line_number": 480 } }, { @@ -3292,16 +3309,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.0" ], - "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", - "kwargs": "self, **kwargs", - "line_number": 90 + "name": "get_user", + "docstring": "", + "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", + "kwargs": "self, uidb64", + "line_number": 471 } }, { @@ -3309,16 +3326,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", + "PasswordResetView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "get_context_data", + "name": "dispatch", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 509 + "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 405 } }, { @@ -3326,16 +3343,33 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordResetView", "django.contrib.auth.views", "Django", "2.0" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n })\n if self.extra_context is not None:\n context.update(self.extra_context)\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 98 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 409 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", + "Django", + "2.0" + ], + "name": "get_success_url_allowed_hosts", + "docstring": "", + "code": "def get_success_url_allowed_hosts(self):\n allowed_hosts = {self.request.get_host()}\n allowed_hosts.update(self.success_url_allowed_hosts)\n return allowed_hosts\n", + "kwargs": "self", + "line_number": 37 } }, { @@ -3360,16 +3394,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "2.0" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 492 + "name": "delete", + "docstring": "", + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 202 } }, { @@ -3377,16 +3411,16 @@ "pk": null, "fields": { "klass": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "2.0" ], - "name": "get_context_data", + "name": "get", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['title'] = self.title\n if self.extra_context is not None:\n context.update(self.extra_context)\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 385 + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 179 } }, { @@ -3394,16 +3428,33 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "2.0" ], - "name": "get_context_data", + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", + "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", + "kwargs": "self, *args, **kwargs", + "line_number": 161 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "RedirectView", + "django.views.generic.base", + "Django", + "2.0" + ], + "name": "head", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n })\n if self.extra_context is not None:\n context.update(self.extra_context)\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 175 + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 193 } }, { @@ -3411,16 +3462,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "2.0" ], - "name": "get_context_data", - "docstring": "Get the context for this view.", - "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", - "kwargs": "self, *, object_list=None, **kwargs", - "line_number": 113 + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 199 } }, { @@ -3428,16 +3479,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "2.0" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", - "kwargs": "self, **kwargs", - "line_number": 63 + "name": "patch", + "docstring": "", + "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 208 } }, { @@ -3445,16 +3496,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "2.0" ], - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", - "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", - "kwargs": "self, obj", - "line_number": 81 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 196 } }, { @@ -3462,16 +3513,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "2.0" ], - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", - "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", - "kwargs": "self, object_list", - "line_number": 104 + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 205 } }, { @@ -3479,16 +3530,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.0" ], - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", - "kwargs": "self, date", - "line_number": 161 + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "kwargs": "self", + "line_number": 132 } }, { @@ -3496,16 +3547,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.0" ], - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", - "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", - "kwargs": "self, date", - "line_number": 115 + "name": "render_to_response", + "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 116 } }, { @@ -3513,16 +3564,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "2.0" ], - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "kwargs": "self, date", - "line_number": 210 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 149 } }, { @@ -3530,16 +3581,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.0" ], - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", - "kwargs": "self, date", - "line_number": 63 + "name": "_allowed_methods", + "docstring": "", + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "kwargs": "self", + "line_number": 105 } }, { @@ -3547,16 +3598,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.0" ], - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "kwargs": "self, date", - "line_number": 531 + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 49 } }, { @@ -3564,16 +3615,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", - "kwargs": "self", - "line_number": 519 + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 81 } }, { @@ -3581,16 +3632,16 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", - "kwargs": "self", - "line_number": 381 + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 91 } }, { @@ -3598,16 +3649,16 @@ "pk": null, "fields": { "klass": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n return self._get_dated_items(datetime.date.today())\n", - "kwargs": "self", - "line_number": 556 + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", + "kwargs": "self, **kwargs", + "line_number": 39 } }, { @@ -3615,16 +3666,33 @@ "pk": null, "fields": { "klass": [ - "BaseWeekArchiveView", + "View", + "django.views.generic.base", + "Django", + "2.0" + ], + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 98 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "BaseArchiveIndexView", "django.views.generic.dates", "Django", "2.0" ], "name": "get_dated_items", "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", "kwargs": "self", - "line_number": 481 + "line_number": 381 } }, { @@ -3632,16 +3700,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", - "kwargs": "self", - "line_number": 402 + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 571 } }, { @@ -3649,16 +3717,16 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", - "kwargs": "self", - "line_number": 447 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 298 } }, { @@ -3695,23 +3763,6 @@ "line_number": 318 } }, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "DateMixin", - "django.views.generic.dates", - "Django", - "2.0" - ], - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", - "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", - "kwargs": "self", - "line_number": 234 - } -}, { "model": "cbv.method", "pk": null, @@ -3751,16 +3802,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_day", - "docstring": "Return the day for which this view should display data.", - "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", + "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", "kwargs": "self", - "line_number": 132 + "line_number": 311 } }, { @@ -3768,33 +3819,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", - "kwargs": "self", - "line_number": 125 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "FormMixin", - "django.views.generic.edit", - "Django", - "2.0" - ], - "name": "get_form", - "docstring": "Return an instance of the form to be used in this view.", - "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", - "kwargs": "self, form_class=None", - "line_number": 29 + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 531 } }, { @@ -3802,16 +3836,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", "kwargs": "self", - "line_number": 25 + "line_number": 519 } }, { @@ -3819,16 +3853,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", "kwargs": "self", - "line_number": 85 + "line_number": 447 } }, { @@ -3836,16 +3870,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_form_class", - "docstring": "Return the form class to use in this view.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n return self._get_dated_items(datetime.date.today())\n", "kwargs": "self", - "line_number": 74 + "line_number": 556 } }, { @@ -3853,16 +3887,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", "kwargs": "self", - "line_number": 88 + "line_number": 481 } }, { @@ -3870,16 +3904,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", "kwargs": "self", - "line_number": 35 + "line_number": 402 } }, { @@ -3887,16 +3921,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", "kwargs": "self", - "line_number": 103 + "line_number": 430 } }, { @@ -3904,16 +3938,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "name": "get_allow_future", + "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", "kwargs": "self", - "line_number": 578 + "line_number": 240 } }, { @@ -3921,16 +3955,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", "kwargs": "self", - "line_number": 480 + "line_number": 234 } }, { @@ -3938,16 +3972,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_initial", - "docstring": "Return the initial data to use for forms on this view.", - "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", - "kwargs": "self", - "line_number": 17 + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", + "kwargs": "self, value", + "line_number": 260 } }, { @@ -3955,16 +3989,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "DateMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_login_url", - "docstring": "Override this method to override the login_url attribute.", - "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", - "kwargs": "self", - "line_number": 17 + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", + "kwargs": "self, date", + "line_number": 273 } }, { @@ -3972,16 +4006,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", + "DayMixin", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", - "kwargs": "self", - "line_number": 430 + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", + "kwargs": "self, date", + "line_number": 161 } }, { @@ -3989,16 +4023,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_month", - "docstring": "Return the month for which this view should display data.", - "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "name": "get_day", + "docstring": "Return the day for which this view should display data.", + "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", "kwargs": "self", - "line_number": 80 + "line_number": 132 } }, { @@ -4006,16 +4040,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", "kwargs": "self", - "line_number": 73 + "line_number": 125 } }, { @@ -4057,16 +4091,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "2.0" ], - "name": "_get_next_month", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", "kwargs": "self, date", - "line_number": 101 + "line_number": 149 } }, { @@ -4079,28 +4113,11 @@ "Django", "2.0" ], - "name": "get_next_month", - "docstring": "Get the next valid month.", - "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", "kwargs": "self, date", - "line_number": 93 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "LogoutView", - "django.contrib.auth.views", - "Django", - "2.0" - ], - "name": "get_next_page", - "docstring": "", - "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = is_safe_url(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", - "kwargs": "self", - "line_number": 150 + "line_number": 115 } }, { @@ -4108,16 +4125,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "MonthMixin", "django.views.generic.dates", "Django", "2.0" ], - "name": "_get_next_week", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", - "kwargs": "self, date", - "line_number": 199 + "name": "get_month", + "docstring": "Return the month for which this view should display data.", + "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "kwargs": "self", + "line_number": 80 } }, { @@ -4125,16 +4142,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "MonthMixin", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_next_week", - "docstring": "Get the next valid week.", - "code": "def get_next_week(self, date):\n \"\"\"Get the next valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", - "kwargs": "self, date", - "line_number": 191 + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "kwargs": "self", + "line_number": 73 } }, { @@ -4142,16 +4159,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "2.0" ], - "name": "_get_next_year", + "name": "_get_next_month", "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", "kwargs": "self, date", - "line_number": 52 + "line_number": 101 } }, { @@ -4159,16 +4176,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_next_year", - "docstring": "Get the next valid year.", - "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", "kwargs": "self, date", - "line_number": 44 + "line_number": 93 } }, { @@ -4176,16 +4193,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateDetailView", + "MonthMixin", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_object", - "docstring": "Get the object this request displays.", - "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", - "kwargs": "self, queryset=None", - "line_number": 571 + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "kwargs": "self, date", + "line_number": 97 } }, { @@ -4193,16 +4210,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WeekMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_object", - "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "kwargs": "self, queryset=None", - "line_number": 20 + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", + "kwargs": "self, date", + "line_number": 210 } }, { @@ -4210,16 +4227,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "WeekMixin", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", - "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", - "kwargs": "self", - "line_number": 311 + "name": "_get_next_week", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "kwargs": "self, date", + "line_number": 199 } }, { @@ -4227,16 +4244,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset.", - "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", - "kwargs": "self", - "line_number": 50 + "name": "get_next_week", + "docstring": "Get the next valid week.", + "code": "def get_next_week(self, date):\n \"\"\"Get the next valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "kwargs": "self, date", + "line_number": 191 } }, { @@ -4244,16 +4261,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "kwargs": "self, queryset", - "line_number": 77 + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "kwargs": "self, date", + "line_number": 195 } }, { @@ -4261,16 +4278,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_paginate_orphans", - "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", - "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "name": "get_week", + "docstring": "Return the week for which this view should display data.", + "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", "kwargs": "self", - "line_number": 90 + "line_number": 178 } }, { @@ -4278,16 +4295,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", - "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", - "line_number": 83 + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", + "kwargs": "self, date", + "line_number": 214 } }, { @@ -4295,16 +4312,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_permission_denied_message", - "docstring": "Override this method to override the permission_denied_message attribute.", - "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", "kwargs": "self", - "line_number": 29 + "line_number": 171 } }, { @@ -4312,16 +4329,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "YearMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_permission_required", - "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", - "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required, )\n else:\n perms = self.permission_required\n return perms\n", - "kwargs": "self", - "line_number": 59 + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", + "kwargs": "self, date", + "line_number": 63 } }, { @@ -4329,16 +4346,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "2.0" ], - "name": "get_prefix", - "docstring": "Return the prefix to use for forms.", - "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", - "kwargs": "self", - "line_number": 21 + "name": "_get_next_year", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", + "kwargs": "self, date", + "line_number": 52 } }, { @@ -4346,16 +4363,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "YearMixin", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_previous_day", - "docstring": "Get the previous valid day.", - "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "name": "get_next_year", + "docstring": "Get the next valid year.", + "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", "kwargs": "self, date", - "line_number": 149 + "line_number": 44 } }, { @@ -4363,16 +4380,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "YearMixin", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_previous_month", - "docstring": "Get the previous valid month.", - "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "name": "get_previous_year", + "docstring": "Get the previous valid year.", + "code": "def get_previous_year(self, date):\n \"\"\"Get the previous valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", "kwargs": "self, date", - "line_number": 97 + "line_number": 48 } }, { @@ -4380,16 +4397,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "YearMixin", "django.views.generic.dates", "Django", "2.0" ], - "name": "get_previous_week", - "docstring": "Get the previous valid week.", - "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", - "kwargs": "self, date", - "line_number": 195 + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "kwargs": "self", + "line_number": 31 } }, { @@ -4402,11 +4419,11 @@ "Django", "2.0" ], - "name": "get_previous_year", - "docstring": "Get the previous valid year.", - "code": "def get_previous_year(self, date):\n \"\"\"Get the previous valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", - "kwargs": "self, date", - "line_number": 48 + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", + "kwargs": "self", + "line_number": 24 } }, { @@ -4414,16 +4431,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.0" ], - "name": "get_queryset", - "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", - "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", - "kwargs": "self", - "line_number": 21 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 104 } }, { @@ -4436,11 +4453,11 @@ "Django", "2.0" ], - "name": "get_queryset", - "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", - "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", - "kwargs": "self", - "line_number": 57 + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 90 } }, { @@ -4448,16 +4465,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.0" ], - "name": "get_redirect_field_name", - "docstring": "Override this method to override the redirect_field_name attribute.", - "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", - "kwargs": "self", - "line_number": 35 + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 81 } }, { @@ -4465,16 +4482,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.0" ], - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", - "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", - "kwargs": "self, *args, **kwargs", - "line_number": 161 + "name": "get_object", + "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\"Generic detail view %s must be called with \"\n \"either an object pk or a slug.\"\n % self.__class__.__name__)\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 20 } }, { @@ -4482,16 +4499,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.0" ], - "name": "get_redirect_url", - "docstring": "Return the user-originating redirect URL if it's safe.", - "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = is_safe_url(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", + "name": "get_queryset", + "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", "kwargs": "self", - "line_number": 72 + "line_number": 57 } }, { @@ -4516,16 +4533,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.0" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response() is overridden. Return the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response() is overridden. Return the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", "kwargs": "self", - "line_number": 110 + "line_number": 114 } }, { @@ -4533,16 +4550,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", + "BaseCreateView", "django.views.generic.edit", "Django", "2.0" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", - "kwargs": "self", - "line_number": 49 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 166 } }, { @@ -4550,16 +4567,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseCreateView", + "django.views.generic.edit", "Django", "2.0" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", - "kwargs": "self", - "line_number": 68 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 170 } }, { @@ -4567,16 +4584,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", + "BaseUpdateView", "django.views.generic.edit", "Django", "2.0" ], - "name": "get_success_url", - "docstring": "", - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", - "kwargs": "self", - "line_number": 220 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 188 } }, { @@ -4584,16 +4601,16 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "BaseUpdateView", + "django.views.generic.edit", "Django", "2.0" ], - "name": "get_success_url_allowed_hosts", - "docstring": "", - "code": "def get_success_url_allowed_hosts(self):\n allowed_hosts = {self.request.get_host()}\n allowed_hosts.update(self.success_url_allowed_hosts)\n return allowed_hosts\n", - "kwargs": "self", - "line_number": 37 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 192 } }, { @@ -4601,16 +4618,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response() is overridden. Return the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response() is overridden. Return the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif hasattr(self, 'model') and self.model is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", - "kwargs": "self", - "line_number": 114 + "name": "delete", + "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 206 } }, { @@ -4618,16 +4635,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", "kwargs": "self", - "line_number": 165 + "line_number": 220 } }, { @@ -4635,16 +4652,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "kwargs": "self", - "line_number": 132 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 217 } }, { @@ -4652,16 +4669,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "get_test_func", - "docstring": "Override this method to use a different test_func method.", - "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", - "kwargs": "self", - "line_number": 99 + "name": "form_invalid", + "docstring": "If the form is invalid, render the invalid form.", + "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 59 } }, { @@ -4669,16 +4686,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "get_user", - "docstring": "", - "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", - "kwargs": "self, uidb64", - "line_number": 471 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 55 } }, { @@ -4686,16 +4703,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "get_week", - "docstring": "Return the week for which this view should display data.", - "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", - "kwargs": "self", - "line_number": 178 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", + "kwargs": "self, **kwargs", + "line_number": 63 } }, { @@ -4703,16 +4720,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "kwargs": "self, date", - "line_number": 214 + "name": "get_form", + "docstring": "Return an instance of the form to be used in this view.", + "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class=None", + "line_number": 29 } }, { @@ -4720,16 +4737,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", "kwargs": "self", - "line_number": 171 + "line_number": 25 } }, { @@ -4737,16 +4754,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "get_year", - "docstring": "Return the year for which this view should display data.", - "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", "kwargs": "self", - "line_number": 31 + "line_number": 35 } }, { @@ -4754,16 +4771,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", + "name": "get_initial", + "docstring": "Return the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", "kwargs": "self", - "line_number": 24 + "line_number": 17 } }, { @@ -4771,16 +4788,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "handle_no_permission", - "docstring": "", - "code": "def handle_no_permission(self):\n if self.raise_exception:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "name": "get_prefix", + "docstring": "Return the prefix to use for forms.", + "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", "kwargs": "self", - "line_number": 41 + "line_number": 21 } }, { @@ -4788,33 +4805,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "has_permission", - "docstring": "Override this method to customize the way permissions are checked.", - "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", "kwargs": "self", - "line_number": 75 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "RedirectView", - "django.views.generic.base", - "Django", - "2.0" - ], - "name": "head", - "docstring": "", - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 193 + "line_number": 49 } }, { @@ -4822,16 +4822,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "http_method_not_allowed", - "docstring": "", - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 91 + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 123 } }, { @@ -4839,16 +4839,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", - "kwargs": "self, **kwargs", - "line_number": 39 + "name": "get_form_class", + "docstring": "Return the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif hasattr(self, 'object') and self.object is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "kwargs": "self", + "line_number": 74 } }, { @@ -4856,16 +4856,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value, timezone.get_current_timezone())\n return value\n", - "kwargs": "self, value", - "line_number": 260 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 103 } }, { @@ -4873,16 +4873,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "kwargs": "self, date", - "line_number": 273 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 110 } }, { @@ -4890,16 +4890,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.0" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 98 + "line_number": 131 } }, { @@ -4907,16 +4907,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.0" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handle POST requests: instantiate a form instance with the passed\n POST variables and then check if it's valid.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 199 + "line_number": 135 } }, { @@ -4924,16 +4924,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.0" ], - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", - "kwargs": "self, queryset, page_size", - "line_number": 54 + "name": "put", + "docstring": "", + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 148 } }, { @@ -4941,16 +4941,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseListView", + "django.views.generic.list", "Django", "2.0" ], - "name": "patch", + "name": "get", "docstring": "", - "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = len(self.object_list) == 0\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\") % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 208 + "line_number": 141 } }, { @@ -4958,16 +4958,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 196 + "name": "get_allow_empty", + "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 97 } }, { @@ -4975,16 +4975,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 170 + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, *, object_list=None, **kwargs", + "line_number": 113 } }, { @@ -4992,16 +4992,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handle POST requests: instantiate a form instance with the passed\n POST variables and then check if it's valid.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 135 + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 104 } }, { @@ -5009,16 +5009,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 217 + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset.", + "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", + "kwargs": "self", + "line_number": 50 } }, { @@ -5026,16 +5026,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 192 + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 77 } }, { @@ -5043,16 +5043,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "post", - "docstring": "Logout may be done via POST.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 146 + "name": "get_paginate_orphans", + "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", + "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "kwargs": "self", + "line_number": 90 } }, { @@ -5060,16 +5060,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "put", - "docstring": "", - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 205 + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", + "line_number": 83 } }, { @@ -5077,16 +5077,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "put", - "docstring": "", - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 148 + "name": "get_queryset", + "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", + "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "kwargs": "self", + "line_number": 21 } }, { @@ -5094,16 +5094,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "render_to_response", - "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", - "kwargs": "self, context, **response_kwargs", - "line_number": 116 + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 54 } }, { @@ -5111,16 +5111,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.0" ], - "name": "test_func", - "docstring": "", - "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n return names\n", "kwargs": "self", - "line_number": 94 + "line_number": 165 } }, { @@ -5128,14 +5128,14 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], "child": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], @@ -5147,14 +5147,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], "child": [ - "FormView", - "django.views.generic.edit", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], @@ -5166,14 +5166,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "2.0" ], @@ -5185,14 +5185,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "2.0" ], "child": [ - "TemplateView", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "2.0" ], @@ -5204,18 +5204,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "FormView", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5223,14 +5223,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "2.0" ], "child": [ - "RedirectView", - "django.views.generic.base", + "LogoutView", + "django.contrib.auth.views", "Django", "2.0" ], @@ -5242,18 +5242,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", + "TemplateView", "django.views.generic.base", "Django", "2.0" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "LogoutView", + "django.contrib.auth.views", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5261,14 +5261,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.0" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.0" ], @@ -5280,18 +5280,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", + "TemplateView", "django.views.generic.base", "Django", "2.0" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5299,14 +5299,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.0" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.0" ], @@ -5318,18 +5318,18 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5337,14 +5337,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.0" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "2.0" ], @@ -5356,18 +5356,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5375,14 +5375,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.0" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.0" ], @@ -5394,18 +5394,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5413,14 +5413,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "2.0" ], @@ -5432,18 +5432,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5451,14 +5451,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.0" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.0" ], @@ -5470,18 +5470,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormView", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5489,14 +5489,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "CreateView", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "2.0" ], @@ -5508,14 +5508,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "DetailView", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "2.0" ], @@ -5527,18 +5527,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "ContextMixin", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5546,18 +5546,18 @@ "pk": null, "fields": { "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "2.0" ], - "order": 0 + "order": 2 } }, { @@ -5565,14 +5565,14 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.0" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "2.0" ], @@ -5584,18 +5584,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5603,14 +5603,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "2.0" ], @@ -5622,14 +5622,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "2.0" ], @@ -5641,18 +5641,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5660,18 +5660,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "BaseDateListView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 2 } }, { @@ -5679,18 +5679,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DateMixin", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 3 } }, { @@ -5698,18 +5698,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.0" ], "child": [ - "YearArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 4 } }, { @@ -5717,13 +5717,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", + "MultipleObjectMixin", "django.views.generic.list", "Django", "2.0" ], "child": [ - "WeekArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "2.0" @@ -5736,18 +5736,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DateMixin", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "TodayArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5755,18 +5755,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "MonthArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 2 } }, { @@ -5774,13 +5774,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "DayArchiveView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "2.0" @@ -5793,18 +5793,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "ArchiveIndexView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5812,18 +5812,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 2 } }, { @@ -5831,18 +5831,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 3 } }, { @@ -5850,14 +5850,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.0" ], @@ -5869,18 +5869,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5888,18 +5888,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 2 } }, { @@ -5907,14 +5907,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], @@ -5926,14 +5926,14 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "2.0" ], @@ -5945,18 +5945,18 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -5964,18 +5964,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 2 } }, { @@ -5983,14 +5983,14 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "YearMixin", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.0" ], @@ -6002,18 +6002,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 0 + "order": 1 } }, { @@ -6021,18 +6021,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", + "SingleObjectTemplateResponseMixin", "django.views.generic.detail", "Django", "2.0" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "DateDetailView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6040,14 +6040,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "BaseListView", - "django.views.generic.list", + "DateDetailView", + "django.views.generic.dates", "Django", "2.0" ], @@ -6059,18 +6059,18 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.0" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6078,14 +6078,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "DayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], @@ -6097,18 +6097,18 @@ "pk": null, "fields": { "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.0" ], "child": [ - "YearArchiveView", + "MonthArchiveView", "django.views.generic.dates", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6116,13 +6116,13 @@ "pk": null, "fields": { "parent": [ - "WeekMixin", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "2.0" ], "child": [ - "BaseWeekArchiveView", + "MonthArchiveView", "django.views.generic.dates", "Django", "2.0" @@ -6135,18 +6135,18 @@ "pk": null, "fields": { "parent": [ - "BaseDeleteView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.0" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6154,14 +6154,14 @@ "pk": null, "fields": { "parent": [ - "BaseFormView", - "django.views.generic.edit", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "FormView", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "2.0" ], @@ -6173,18 +6173,18 @@ "pk": null, "fields": { "parent": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.0" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "WeekArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6192,14 +6192,14 @@ "pk": null, "fields": { "parent": [ - "BaseListView", - "django.views.generic.list", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "ListView", - "django.views.generic.list", + "WeekArchiveView", + "django.views.generic.dates", "Django", "2.0" ], @@ -6211,18 +6211,18 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.0" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "YearArchiveView", + "django.views.generic.dates", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6230,14 +6230,14 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.0" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "YearArchiveView", + "django.views.generic.dates", "Django", "2.0" ], @@ -6249,18 +6249,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", + "SingleObjectMixin", "django.views.generic.detail", "Django", "2.0" ], "child": [ - "DetailView", + "BaseDetailView", "django.views.generic.detail", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6268,14 +6268,14 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.0" ], @@ -6287,18 +6287,18 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.0" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "DetailView", + "django.views.generic.detail", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6306,14 +6306,14 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.0" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "DetailView", + "django.views.generic.detail", "Django", "2.0" ], @@ -6325,18 +6325,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6344,18 +6344,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", + "TemplateResponseMixin", "django.views.generic.base", "Django", "2.0" ], "child": [ - "TemplateView", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6363,18 +6363,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "BaseCreateView", + "django.views.generic.edit", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6382,14 +6382,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "BaseCreateView", + "django.views.generic.edit", "Django", "2.0" ], @@ -6401,18 +6401,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "BaseDeleteView", + "django.views.generic.edit", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6420,14 +6420,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.0" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "BaseDeleteView", + "django.views.generic.edit", "Django", "2.0" ], @@ -6439,18 +6439,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6464,7 +6464,7 @@ "2.0" ], "child": [ - "BaseCreateView", + "BaseFormView", "django.views.generic.edit", "Django", "2.0" @@ -6477,18 +6477,18 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6496,13 +6496,13 @@ "pk": null, "fields": { "parent": [ - "BaseCreateView", + "ProcessFormView", "django.views.generic.edit", "Django", "2.0" ], "child": [ - "CreateView", + "BaseUpdateView", "django.views.generic.edit", "Django", "2.0" @@ -6515,18 +6515,18 @@ "pk": null, "fields": { "parent": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.0" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6534,14 +6534,14 @@ "pk": null, "fields": { "parent": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "WeekArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "2.0" ], @@ -6553,18 +6553,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.0" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6572,14 +6572,14 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "2.0" ], @@ -6591,18 +6591,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6610,18 +6610,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6629,14 +6629,14 @@ "pk": null, "fields": { "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "2.0" ], @@ -6648,18 +6648,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.0" ], - "order": 1 + "order": 0 } }, { @@ -6667,14 +6667,14 @@ "pk": null, "fields": { "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.0" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.0" ], @@ -6686,18 +6686,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.0" ], - "order": 2 + "order": 0 } }, { @@ -6705,18 +6705,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.0" ], "child": [ - "TemplateView", - "django.views.generic.base", + "UpdateView", + "django.views.generic.edit", "Django", "2.0" ], - "order": 2 + "order": 0 } }, { @@ -6724,18 +6724,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "2.0" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "2.0" ], - "order": 2 + "order": 1 } }, { @@ -6743,18 +6743,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "2.0" ], - "order": 2 + "order": 0 } }, { @@ -6768,12 +6768,12 @@ "2.0" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "2.0" ], - "order": 2 + "order": 1 } }, { @@ -6781,18 +6781,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.0" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "2.0" ], - "order": 2 + "order": 0 } }, { @@ -6800,18 +6800,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "2.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "2.0" ], - "order": 3 + "order": 1 } }, { @@ -6819,18 +6819,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.0" ], - "order": 3 + "order": 0 } }, { @@ -6838,18 +6838,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.0" ], - "order": 4 + "order": 0 } } ] diff --git a/cbv/fixtures/2.1.json b/cbv/fixtures/2.1.json index 34baa94e..901a5ae8 100644 --- a/cbv/fixtures/2.1.json +++ b/cbv/fixtures/2.1.json @@ -40,9 +40,9 @@ "Django", "2.1" ], - "name": "django.views.generic.list", + "name": "django.views.generic", "docstring": "", - "filename": "/django/views/generic/list.py" + "filename": "/django/views/generic/__init__.py" } }, { @@ -52,9 +52,9 @@ "Django", "2.1" ], - "name": "django.views.generic.edit", + "name": "django.views.generic.base", "docstring": "", - "filename": "/django/views/generic/edit.py" + "filename": "/django/views/generic/base.py" } }, { @@ -64,9 +64,9 @@ "Django", "2.1" ], - "name": "django.views.generic.detail", + "name": "django.views.generic.dates", "docstring": "", - "filename": "/django/views/generic/detail.py" + "filename": "/django/views/generic/dates.py" } }, { @@ -76,9 +76,9 @@ "Django", "2.1" ], - "name": "django.views.generic.dates", + "name": "django.views.generic.detail", "docstring": "", - "filename": "/django/views/generic/dates.py" + "filename": "/django/views/generic/detail.py" } }, { @@ -88,9 +88,9 @@ "Django", "2.1" ], - "name": "django.views.generic.base", + "name": "django.views.generic.edit", "docstring": "", - "filename": "/django/views/generic/base.py" + "filename": "/django/views/generic/edit.py" } }, { @@ -100,9 +100,9 @@ "Django", "2.1" ], - "name": "django.views.generic", + "name": "django.views.generic.list", "docstring": "", - "filename": "/django/views/generic/__init__.py" + "filename": "/django/views/generic/list.py" } }, { @@ -1010,13 +1010,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], - "name": "allow_empty", - "value": "True", + "name": "login_url", + "value": "None", "line_number": -1 } }, @@ -1025,13 +1025,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], - "name": "allow_empty", - "value": "False", + "name": "permission_denied_message", + "value": "''", "line_number": -1 } }, @@ -1040,12 +1040,12 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], - "name": "allow_future", + "name": "raise_exception", "value": "False", "line_number": -1 } @@ -1055,13 +1055,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], - "name": "args", - "value": "", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1070,12 +1070,12 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], - "name": "authentication_form", + "name": "permission_required", "value": "None", "line_number": -1 } @@ -1085,13 +1085,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "__cause__", - "value": "", + "name": "authentication_form", + "value": "None", "line_number": -1 } }, @@ -1100,14 +1100,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "content_type", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 156 } }, { @@ -1115,13 +1115,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "__context__", - "value": "", + "name": "redirect_authenticated_user", + "value": "False", "line_number": -1 } }, @@ -1130,13 +1130,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "LoginView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "context_object_name", - "value": "None", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1145,13 +1145,13 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "context_object_name", - "value": "'latest'", + "name": "template_name", + "value": "'registration/login.html'", "line_number": -1 } }, @@ -1160,12 +1160,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "LogoutView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "context_object_name", + "name": "next_page", "value": "None", "line_number": -1 } @@ -1175,13 +1175,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "date_field", - "value": "None", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1190,13 +1190,13 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "date_list_period", - "value": "'day'", + "name": "template_name", + "value": "'registration/logged_out.html'", "line_number": -1 } }, @@ -1205,13 +1205,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "date_list_period", - "value": "'month'", + "name": "template_name", + "value": "'registration/password_change_done.html'", "line_number": -1 } }, @@ -1220,13 +1220,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "date_list_period", - "value": "'year'", + "name": "title", + "value": "gettext_lazy('Password change successful')", "line_number": -1 } }, @@ -1235,14 +1235,14 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "day", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 343 } }, { @@ -1250,13 +1250,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "day_format", - "value": "'%d'", + "name": "success_url", + "value": "reverse_lazy('password_change_done')", "line_number": -1 } }, @@ -1265,13 +1265,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "__delattr__", - "value": "", + "name": "template_name", + "value": "'registration/password_change_form.html'", "line_number": -1 } }, @@ -1280,13 +1280,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordChangeView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "email_template_name", - "value": "'registration/password_reset_email.html'", + "name": "title", + "value": "gettext_lazy('Password change')", "line_number": -1 } }, @@ -1295,8 +1295,8 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", - "django.views.generic.base", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.1" ], @@ -1310,13 +1310,13 @@ "pk": null, "fields": { "klass": [ - "PasswordContextMixin", + "PasswordResetCompleteView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "extra_context", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_complete.html'", "line_number": -1 } }, @@ -1325,13 +1325,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetCompleteView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "extra_email_context", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password reset complete')", "line_number": -1 } }, @@ -1340,14 +1340,14 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "fields", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 299 } }, { @@ -1355,14 +1355,14 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "form_class", - "value": "", - "line_number": 232 + "name": "post_reset_login", + "value": "False", + "line_number": -1 } }, { @@ -1370,14 +1370,14 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "form_class", - "value": "", - "line_number": 156 + "name": "post_reset_login_backend", + "value": "None", + "line_number": -1 } }, { @@ -1385,13 +1385,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "form_class", - "value": "None", + "name": "success_url", + "value": "reverse_lazy('password_reset_complete')", "line_number": -1 } }, @@ -1405,9 +1405,9 @@ "Django", "2.1" ], - "name": "form_class", - "value": "", - "line_number": 299 + "name": "template_name", + "value": "'registration/password_reset_confirm.html'", + "line_number": -1 } }, { @@ -1415,14 +1415,14 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "form_class", - "value": "", - "line_number": 343 + "name": "title", + "value": "gettext_lazy('Enter new password')", + "line_number": -1 } }, { @@ -1430,13 +1430,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "from_email", - "value": "None", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1445,13 +1445,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "__getattribute__", - "value": "", + "name": "template_name", + "value": "'registration/password_reset_done.html'", "line_number": -1 } }, @@ -1460,13 +1460,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetDoneView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "html_email_template_name", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password reset sent')", "line_number": -1 } }, @@ -1475,13 +1475,13 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "http_method_names", - "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "name": "email_template_name", + "value": "'registration/password_reset_email.html'", "line_number": -1 } }, @@ -1490,13 +1490,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "__init__", - "value": "", + "name": "extra_email_context", + "value": "None", "line_number": -1 } }, @@ -1505,14 +1505,14 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "initial", - "value": "{}", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 232 } }, { @@ -1520,12 +1520,12 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "login_url", + "name": "from_email", "value": "None", "line_number": -1 } @@ -1535,13 +1535,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "make_object_list", - "value": "False", + "name": "html_email_template_name", + "value": "None", "line_number": -1 } }, @@ -1550,13 +1550,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "model", - "value": "None", + "name": "subject_template_name", + "value": "'registration/password_reset_subject.txt'", "line_number": -1 } }, @@ -1565,13 +1565,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "model", - "value": "None", + "name": "success_url", + "value": "reverse_lazy('password_reset_done')", "line_number": -1 } }, @@ -1580,13 +1580,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "month", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_form.html'", "line_number": -1 } }, @@ -1595,13 +1595,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "month_format", - "value": "'%b'", + "name": "title", + "value": "gettext_lazy('Password reset')", "line_number": -1 } }, @@ -1610,13 +1610,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", + "PasswordResetView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "next_page", - "value": "None", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1625,13 +1625,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "ordering", - "value": "None", + "name": "success_url_allowed_hosts", + "value": "set()", "line_number": -1 } }, @@ -1640,13 +1640,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "page_kwarg", - "value": "'page'", + "name": "args", + "value": "", "line_number": -1 } }, @@ -1655,13 +1655,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "paginate_by", - "value": "None", + "name": "__cause__", + "value": "", "line_number": -1 } }, @@ -1670,13 +1670,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "paginate_orphans", - "value": "0", + "name": "__context__", + "value": "", "line_number": -1 } }, @@ -1685,14 +1685,14 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "paginator_class", - "value": "", - "line_number": 25 + "name": "__delattr__", + "value": "", + "line_number": -1 } }, { @@ -1700,13 +1700,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "pattern_name", - "value": "None", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -1715,13 +1715,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "permanent", - "value": "False", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -1730,13 +1730,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "permission_denied_message", - "value": "''", + "name": "__reduce__", + "value": "", "line_number": -1 } }, @@ -1745,13 +1745,13 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "permission_required", - "value": "None", + "name": "__repr__", + "value": "", "line_number": -1 } }, @@ -1760,13 +1760,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "pk_url_kwarg", - "value": "'pk'", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -1775,13 +1775,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "post_reset_login", - "value": "False", + "name": "__setstate__", + "value": "", "line_number": -1 } }, @@ -1790,13 +1790,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "post_reset_login_backend", - "value": "None", + "name": "__str__", + "value": "", "line_number": -1 } }, @@ -1805,13 +1805,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "prefix", - "value": "None", + "name": "__suppress_context__", + "value": "", "line_number": -1 } }, @@ -1820,13 +1820,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "query_pk_and_slug", - "value": "False", + "name": "__traceback__", + "value": "", "line_number": -1 } }, @@ -1835,13 +1835,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "2.1" ], - "name": "queryset", - "value": "None", + "name": "with_traceback", + "value": "", "line_number": -1 } }, @@ -1850,12 +1850,12 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "ContextMixin", + "django.views.generic.base", "Django", "2.1" ], - "name": "queryset", + "name": "extra_context", "value": "None", "line_number": -1 } @@ -1870,8 +1870,8 @@ "Django", "2.1" ], - "name": "query_string", - "value": "False", + "name": "pattern_name", + "value": "None", "line_number": -1 } }, @@ -1880,12 +1880,12 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "RedirectView", + "django.views.generic.base", "Django", "2.1" ], - "name": "raise_exception", + "name": "permanent", "value": "False", "line_number": -1 } @@ -1895,12 +1895,12 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "2.1" ], - "name": "redirect_authenticated_user", + "name": "query_string", "value": "False", "line_number": -1 } @@ -1910,13 +1910,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "2.1" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "url", + "value": "None", "line_number": -1 } }, @@ -1925,13 +1925,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.1" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "content_type", + "value": "None", "line_number": -1 } }, @@ -1940,14 +1940,14 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.1" ], - "name": "redirect_field_name", - "value": "'next'", - "line_number": -1 + "name": "response_class", + "value": "", + "line_number": 139 } }, { @@ -1955,13 +1955,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.1" ], - "name": "__reduce__", - "value": "", + "name": "template_engine", + "value": "None", "line_number": -1 } }, @@ -1970,13 +1970,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.1" ], - "name": "__repr__", - "value": "", + "name": "template_name", + "value": "None", "line_number": -1 } }, @@ -1985,14 +1985,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", + "View", "django.views.generic.base", "Django", "2.1" ], - "name": "response_class", - "value": "", - "line_number": 139 + "name": "http_method_names", + "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "line_number": -1 } }, { @@ -2000,13 +2000,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "__setattr__", - "value": "", + "name": "template_name_suffix", + "value": "'_archive'", "line_number": -1 } }, @@ -2015,13 +2015,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "__setstate__", - "value": "", + "name": "context_object_name", + "value": "'latest'", "line_number": -1 } }, @@ -2030,13 +2030,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "slug_field", - "value": "'slug'", + "name": "allow_empty", + "value": "False", "line_number": -1 } }, @@ -2045,13 +2045,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "slug_url_kwarg", - "value": "'slug'", + "name": "date_list_period", + "value": "'year'", "line_number": -1 } }, @@ -2060,13 +2060,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "__str__", - "value": "", + "name": "date_list_period", + "value": "'day'", "line_number": -1 } }, @@ -2075,13 +2075,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "subject_template_name", - "value": "'registration/password_reset_subject.txt'", + "name": "date_list_period", + "value": "'month'", "line_number": -1 } }, @@ -2090,13 +2090,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_complete')", + "name": "make_object_list", + "value": "False", "line_number": -1 } }, @@ -2105,13 +2105,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_done')", + "name": "allow_future", + "value": "False", "line_number": -1 } }, @@ -2120,12 +2120,12 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "success_url", + "name": "date_field", "value": "None", "line_number": -1 } @@ -2135,13 +2135,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "success_url", - "value": "None", + "name": "uses_datetime_field", + "value": "", "line_number": -1 } }, @@ -2150,13 +2150,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "success_url", - "value": "reverse_lazy('password_change_done')", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2165,13 +2165,13 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "success_url_allowed_hosts", - "value": "set()", + "name": "day", + "value": "None", "line_number": -1 } }, @@ -2180,13 +2180,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "DayMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "__suppress_context__", - "value": "", + "name": "day_format", + "value": "'%d'", "line_number": -1 } }, @@ -2195,13 +2195,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MonthArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "template_engine", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_month'", "line_number": -1 } }, @@ -2210,12 +2210,12 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MonthMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "template_name", + "name": "month", "value": "None", "line_number": -1 } @@ -2225,13 +2225,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "template_name", - "value": "'registration/password_reset_complete.html'", + "name": "month_format", + "value": "'%b'", "line_number": -1 } }, @@ -2240,13 +2240,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "TodayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "template_name", - "value": "'registration/password_change_form.html'", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2255,13 +2255,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "template_name", - "value": "'registration/password_change_done.html'", + "name": "template_name_suffix", + "value": "'_archive_week'", "line_number": -1 } }, @@ -2270,13 +2270,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "template_name", - "value": "'registration/logged_out.html'", + "name": "week", + "value": "None", "line_number": -1 } }, @@ -2285,13 +2285,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "template_name", - "value": "'registration/login.html'", + "name": "week_format", + "value": "'%U'", "line_number": -1 } }, @@ -2300,13 +2300,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "YearArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "template_name", - "value": "'registration/password_reset_confirm.html'", + "name": "template_name_suffix", + "value": "'_archive_year'", "line_number": -1 } }, @@ -2315,13 +2315,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "template_name", - "value": "'registration/password_reset_done.html'", + "name": "year", + "value": "None", "line_number": -1 } }, @@ -2330,13 +2330,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "template_name", - "value": "'registration/password_reset_form.html'", + "name": "year_format", + "value": "'%Y'", "line_number": -1 } }, @@ -2345,12 +2345,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "2.1" ], - "name": "template_name_field", + "name": "context_object_name", "value": "None", "line_number": -1 } @@ -2360,13 +2360,13 @@ "pk": null, "fields": { "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.1" ], - "name": "template_name_suffix", - "value": "'_archive_month'", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2375,13 +2375,13 @@ "pk": null, "fields": { "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.1" ], - "name": "template_name_suffix", - "value": "'_archive'", + "name": "pk_url_kwarg", + "value": "'pk'", "line_number": -1 } }, @@ -2390,13 +2390,13 @@ "pk": null, "fields": { "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.1" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "query_pk_and_slug", + "value": "False", "line_number": -1 } }, @@ -2405,13 +2405,13 @@ "pk": null, "fields": { "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.1" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "queryset", + "value": "None", "line_number": -1 } }, @@ -2420,13 +2420,13 @@ "pk": null, "fields": { "klass": [ - "UpdateView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.1" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "slug_field", + "value": "'slug'", "line_number": -1 } }, @@ -2435,13 +2435,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.1" ], - "name": "template_name_suffix", - "value": "'_list'", + "name": "slug_url_kwarg", + "value": "'slug'", "line_number": -1 } }, @@ -2450,13 +2450,13 @@ "pk": null, "fields": { "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.1" ], - "name": "template_name_suffix", - "value": "'_archive_week'", + "name": "template_name_field", + "value": "None", "line_number": -1 } }, @@ -2465,13 +2465,13 @@ "pk": null, "fields": { "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.1" ], "name": "template_name_suffix", - "value": "'_archive_year'", + "value": "'_detail'", "line_number": -1 } }, @@ -2480,13 +2480,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "CreateView", + "django.views.generic.edit", "Django", "2.1" ], "name": "template_name_suffix", - "value": "'_detail'", + "value": "'_form'", "line_number": -1 } }, @@ -2510,13 +2510,13 @@ "pk": null, "fields": { "klass": [ - "CreateView", + "DeletionMixin", "django.views.generic.edit", "Django", "2.1" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2525,13 +2525,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "title", - "value": "gettext_lazy('Password reset sent')", + "name": "form_class", + "value": "None", "line_number": -1 } }, @@ -2540,13 +2540,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "title", - "value": "gettext_lazy('Password reset complete')", + "name": "initial", + "value": "{}", "line_number": -1 } }, @@ -2555,13 +2555,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "title", - "value": "gettext_lazy('Password change')", + "name": "prefix", + "value": "None", "line_number": -1 } }, @@ -2570,13 +2570,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "title", - "value": "gettext_lazy('Password change successful')", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2585,13 +2585,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "title", - "value": "gettext_lazy('Password reset')", + "name": "fields", + "value": "None", "line_number": -1 } }, @@ -2600,13 +2600,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "UpdateView", + "django.views.generic.edit", "Django", "2.1" ], - "name": "title", - "value": "gettext_lazy('Enter new password')", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -2615,13 +2615,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "token_generator", - "value": "", + "name": "allow_empty", + "value": "True", "line_number": -1 } }, @@ -2630,13 +2630,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "token_generator", - "value": "", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -2645,13 +2645,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "__traceback__", - "value": "", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2660,12 +2660,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "url", + "name": "ordering", "value": "None", "line_number": -1 } @@ -2675,13 +2675,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "uses_datetime_field", - "value": "", + "name": "page_kwarg", + "value": "'page'", "line_number": -1 } }, @@ -2690,12 +2690,12 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "week", + "name": "paginate_by", "value": "None", "line_number": -1 } @@ -2705,13 +2705,13 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "week_format", - "value": "'%U'", + "name": "paginate_orphans", + "value": "0", "line_number": -1 } }, @@ -2720,14 +2720,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "with_traceback", - "value": "", - "line_number": -1 + "name": "paginator_class", + "value": "", + "line_number": 25 } }, { @@ -2735,12 +2735,12 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "year", + "name": "queryset", "value": "None", "line_number": -1 } @@ -2750,13 +2750,13 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "year_format", - "value": "'%Y'", + "name": "template_name_suffix", + "value": "'_list'", "line_number": -1 } }, @@ -2765,16 +2765,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], - "name": "_allowed_methods", - "docstring": "", - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "name": "get_login_url", + "docstring": "Override this method to override the login_url attribute.", + "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", "kwargs": "self", - "line_number": 104 + "line_number": 17 } }, { @@ -2782,16 +2782,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], - "name": "as_view", - "docstring": "Main entry point for a request-response process.", - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "kwargs": "cls, **initkwargs", - "line_number": 48 + "name": "get_permission_denied_message", + "docstring": "Override this method to override the permission_denied_message attribute.", + "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "kwargs": "self", + "line_number": 29 } }, { @@ -2799,16 +2799,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], - "name": "delete", - "docstring": "", - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 201 + "name": "get_redirect_field_name", + "docstring": "Override this method to override the redirect_field_name attribute.", + "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", + "kwargs": "self", + "line_number": 35 } }, { @@ -2816,16 +2816,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], - "name": "delete", - "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 206 + "name": "handle_no_permission", + "docstring": "", + "code": "def handle_no_permission(self):\n if self.raise_exception or self.request.user.is_authenticated:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "kwargs": "self", + "line_number": 41 } }, { @@ -2833,16 +2833,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", + "LoginRequiredMixin", "django.contrib.auth.mixins", "Django", "2.1" ], "name": "dispatch", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 82 + "line_number": 49 } }, { @@ -2850,16 +2850,16 @@ "pk": null, "fields": { "klass": [ - "LoginRequiredMixin", + "PermissionRequiredMixin", "django.contrib.auth.mixins", "Django", "2.1" ], "name": "dispatch", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 49 + "line_number": 82 } }, { @@ -2867,16 +2867,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 357 + "name": "get_permission_required", + "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", + "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required,)\n else:\n perms = self.permission_required\n return perms\n", + "kwargs": "self", + "line_number": 59 } }, { @@ -2884,16 +2884,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 80 + "name": "has_permission", + "docstring": "Override this method to customize the way permissions are checked.", + "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "kwargs": "self", + "line_number": 75 } }, { @@ -2901,16 +2901,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 334 + "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 105 } }, { @@ -2918,33 +2918,33 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == INTERNAL_RESET_URL_TOKEN:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, INTERNAL_RESET_URL_TOKEN)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, *args, **kwargs", - "line_number": 255 - } + "name": "get_test_func", + "docstring": "Override this method to use a different test_func method.", + "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", + "kwargs": "self", + "line_number": 99 + } }, { "model": "cbv.method", "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], - "name": "dispatch", + "name": "test_func", "docstring": "", - "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 218 + "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "kwargs": "self", + "line_number": 94 } }, { @@ -2969,16 +2969,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "LoginView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 105 + "name": "form_valid", + "docstring": "Security check complete. Log the user in.", + "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 88 } }, { @@ -2986,16 +2986,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", + "LoginView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 114 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 93 } }, { @@ -3003,16 +3003,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "form_invalid", - "docstring": "If the form is invalid, render the invalid form.", - "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "kwargs": "self, form", - "line_number": 59 + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "kwargs": "self", + "line_number": 80 } }, { @@ -3020,16 +3020,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 123 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "kwargs": "self", + "line_number": 83 } }, { @@ -3037,16 +3037,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 55 + "name": "get_redirect_url", + "docstring": "Return the user-originating redirect URL if it's safe.", + "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = is_safe_url(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", + "kwargs": "self", + "line_number": 67 } }, { @@ -3054,16 +3054,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", + "LoginView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 298 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", + "kwargs": "self", + "line_number": 63 } }, { @@ -3071,16 +3071,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "LogoutView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 345 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 114 } }, { @@ -3088,16 +3088,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "LogoutView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 222 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 152 } }, { @@ -3105,16 +3105,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "LogoutView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "form_valid", - "docstring": "Security check complete. Log the user in.", - "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 88 + "name": "get_next_page", + "docstring": "", + "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = is_safe_url(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", + "kwargs": "self", + "line_number": 127 } }, { @@ -3122,16 +3122,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "LogoutView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", + "name": "post", + "docstring": "Logout may be done via POST.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 166 + "line_number": 123 } }, { @@ -3139,16 +3139,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 131 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 357 } }, { @@ -3156,16 +3156,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "get", + "name": "dispatch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 178 + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 334 } }, { @@ -3173,16 +3173,16 @@ "pk": null, "fields": { "klass": [ - "TemplateView", - "django.views.generic.base", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 148 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 345 } }, { @@ -3190,16 +3190,16 @@ "pk": null, "fields": { "klass": [ - "BaseListView", - "django.views.generic.list", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = not self.object_list\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\") % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 141 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "kwargs": "self", + "line_number": 340 } }, { @@ -3207,16 +3207,16 @@ "pk": null, "fields": { "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "get", + "name": "get_context_data", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 105 + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context.update({\n 'title': self.title,\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 197 } }, { @@ -3224,16 +3224,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "get", + "name": "get_context_data", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 298 + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 322 } }, { @@ -3241,16 +3241,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 188 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == INTERNAL_RESET_URL_TOKEN:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, INTERNAL_RESET_URL_TOKEN)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", + "kwargs": "self, *args, **kwargs", + "line_number": 255 } }, { @@ -3258,16 +3258,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "get_allow_empty", - "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", - "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "kwargs": "self", - "line_number": 97 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 298 } }, { @@ -3275,16 +3275,33 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "get_allow_future", - "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", - "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 305 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "PasswordResetConfirmView", + "django.contrib.auth.views", + "Django", + "2.1" + ], + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", "kwargs": "self", - "line_number": 240 + "line_number": 293 } }, { @@ -3292,16 +3309,16 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", - "django.views.generic.base", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "get_context_data", + "name": "get_user", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n kwargs.setdefault('view', self)\n if self.extra_context is not None:\n kwargs.update(self.extra_context)\n return kwargs\n", - "kwargs": "self, **kwargs", - "line_number": 23 + "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", + "kwargs": "self, uidb64", + "line_number": 284 } }, { @@ -3309,16 +3326,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordResetView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 93 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 218 } }, { @@ -3326,16 +3343,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", + "PasswordResetView", "django.contrib.auth.views", "Django", "2.1" ], - "name": "get_context_data", - "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 152 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 222 } }, { @@ -3343,16 +3360,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "2.1" ], - "name": "get_context_data", - "docstring": "Get the context for this view.", - "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", - "kwargs": "self, *, object_list=None, **kwargs", - "line_number": 113 + "name": "get_success_url_allowed_hosts", + "docstring": "", + "code": "def get_success_url_allowed_hosts(self):\n return {self.request.get_host(), *self.success_url_allowed_hosts}\n", + "kwargs": "self", + "line_number": 34 } }, { @@ -3360,16 +3377,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "ContextMixin", + "django.views.generic.base", "Django", "2.1" ], "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n kwargs.setdefault('view', self)\n if self.extra_context is not None:\n kwargs.update(self.extra_context)\n return kwargs\n", "kwargs": "self, **kwargs", - "line_number": 91 + "line_number": 23 } }, { @@ -3377,16 +3394,16 @@ "pk": null, "fields": { "klass": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "2.1" ], - "name": "get_context_data", + "name": "delete", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context.update({\n 'title': self.title,\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 197 + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 201 } }, { @@ -3394,16 +3411,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "2.1" ], - "name": "get_context_data", + "name": "get", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 322 + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 178 } }, { @@ -3411,16 +3428,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "2.1" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", - "kwargs": "self, **kwargs", - "line_number": 63 + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", + "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", + "kwargs": "self, *args, **kwargs", + "line_number": 160 } }, { @@ -3428,16 +3445,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "2.1" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 305 + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 192 } }, { @@ -3445,16 +3462,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "2.1" ], - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", - "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", - "kwargs": "self, object_list", - "line_number": 104 + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 198 } }, { @@ -3462,16 +3479,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "2.1" ], - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", - "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", - "kwargs": "self, obj", - "line_number": 82 + "name": "patch", + "docstring": "", + "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 207 } }, { @@ -3479,16 +3496,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "2.1" ], - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", - "kwargs": "self, date", - "line_number": 161 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 195 } }, { @@ -3496,16 +3513,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "2.1" ], - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", - "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", - "kwargs": "self, date", - "line_number": 115 + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 204 } }, { @@ -3513,16 +3530,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.1" ], - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "kwargs": "self, date", - "line_number": 210 + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "kwargs": "self", + "line_number": 131 } }, { @@ -3530,16 +3547,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.1" ], - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", - "kwargs": "self, date", - "line_number": 63 + "name": "render_to_response", + "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 115 } }, { @@ -3547,16 +3564,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "2.1" ], - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "kwargs": "self, date", - "line_number": 531 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 148 } }, { @@ -3564,16 +3581,16 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.1" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", + "name": "_allowed_methods", + "docstring": "", + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", "kwargs": "self", - "line_number": 381 + "line_number": 104 } }, { @@ -3581,16 +3598,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.1" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", - "kwargs": "self", - "line_number": 402 + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 48 } }, { @@ -3598,16 +3615,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.1" ], - "name": "get_dated_items", - "docstring": "Obtain the list of dates and items.", - "code": "def get_dated_items(self):\n \"\"\"Obtain the list of dates and items.\"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", - "kwargs": "self", - "line_number": 307 + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 80 } }, { @@ -3615,16 +3632,16 @@ "pk": null, "fields": { "klass": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.1" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n return self._get_dated_items(datetime.date.today())\n", - "kwargs": "self", - "line_number": 556 + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 90 } }, { @@ -3632,16 +3649,16 @@ "pk": null, "fields": { "klass": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.1" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", - "kwargs": "self", - "line_number": 481 + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", + "kwargs": "self, **kwargs", + "line_number": 38 } }, { @@ -3649,16 +3666,33 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", + "View", + "django.views.generic.base", + "Django", + "2.1" + ], + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 97 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "BaseArchiveIndexView", "django.views.generic.dates", "Django", "2.1" ], "name": "get_dated_items", "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", "kwargs": "self", - "line_number": 519 + "line_number": 381 } }, { @@ -3666,16 +3700,16 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", - "kwargs": "self", - "line_number": 447 + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 571 } }, { @@ -3688,11 +3722,11 @@ "Django", "2.1" ], - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", - "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = not qs if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n })\n return qs\n", - "kwargs": "self, **lookup", - "line_number": 318 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 298 } }, { @@ -3700,16 +3734,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", - "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", + "name": "get_dated_items", + "docstring": "Obtain the list of dates and items.", + "code": "def get_dated_items(self):\n \"\"\"Obtain the list of dates and items.\"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", "kwargs": "self", - "line_number": 234 + "line_number": 307 } }, { @@ -3722,11 +3756,11 @@ "Django", "2.1" ], - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", - "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n raise Http404(\n _(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': queryset.model._meta.verbose_name_plural,\n }\n )\n return date_list\n", - "kwargs": "self, queryset, date_type=None, ordering='ASC'", - "line_number": 351 + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = not qs if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n })\n return qs\n", + "kwargs": "self, **lookup", + "line_number": 318 } }, { @@ -3739,11 +3773,11 @@ "Django", "2.1" ], - "name": "get_date_list_period", - "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or\n'day'.", - "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or\n 'day'.\n \"\"\"\n return self.date_list_period\n", - "kwargs": "self", - "line_number": 344 + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n raise Http404(\n _(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': queryset.model._meta.verbose_name_plural,\n }\n )\n return date_list\n", + "kwargs": "self, queryset, date_type=None, ordering='ASC'", + "line_number": 351 } }, { @@ -3751,16 +3785,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_day", - "docstring": "Return the day for which this view should display data.", - "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "name": "get_date_list_period", + "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or\n'day'.", + "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or\n 'day'.\n \"\"\"\n return self.date_list_period\n", "kwargs": "self", - "line_number": 132 + "line_number": 344 } }, { @@ -3768,16 +3802,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", + "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", "kwargs": "self", - "line_number": 125 + "line_number": 311 } }, { @@ -3785,16 +3819,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_form", - "docstring": "Return an instance of the form to be used in this view.", - "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", - "kwargs": "self, form_class=None", - "line_number": 29 + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 531 } }, { @@ -3802,16 +3836,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", "kwargs": "self", - "line_number": 80 + "line_number": 519 } }, { @@ -3819,16 +3853,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_form_class", - "docstring": "Return the form class to use in this view.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif getattr(self, 'object', None) is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", "kwargs": "self", - "line_number": 74 + "line_number": 447 } }, { @@ -3836,16 +3870,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n return self._get_dated_items(datetime.date.today())\n", "kwargs": "self", - "line_number": 25 + "line_number": 556 } }, { @@ -3853,16 +3887,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_start = {\n '%W': '1',\n '%U': '0',\n }[week_format]\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", "kwargs": "self", - "line_number": 293 + "line_number": 481 } }, { @@ -3870,16 +3904,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", "kwargs": "self", - "line_number": 103 + "line_number": 402 } }, { @@ -3887,16 +3921,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", "kwargs": "self", - "line_number": 83 + "line_number": 430 } }, { @@ -3904,16 +3938,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "name": "get_allow_future", + "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", "kwargs": "self", - "line_number": 340 + "line_number": 240 } }, { @@ -3921,16 +3955,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", "kwargs": "self", - "line_number": 35 + "line_number": 234 } }, { @@ -3938,16 +3972,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_initial", - "docstring": "Return the initial data to use for forms on this view.", - "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", - "kwargs": "self", - "line_number": 17 + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value)\n return value\n", + "kwargs": "self, value", + "line_number": 260 } }, { @@ -3955,16 +3989,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "DateMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_login_url", - "docstring": "Override this method to override the login_url attribute.", - "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", - "kwargs": "self", - "line_number": 17 + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", + "kwargs": "self, date", + "line_number": 273 } }, { @@ -3972,16 +4006,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", + "DayMixin", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", - "kwargs": "self", - "line_number": 430 + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", + "kwargs": "self, date", + "line_number": 161 } }, { @@ -3989,16 +4023,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_month", - "docstring": "Return the month for which this view should display data.", - "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "name": "get_day", + "docstring": "Return the day for which this view should display data.", + "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", "kwargs": "self", - "line_number": 80 + "line_number": 132 } }, { @@ -4006,16 +4040,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", "kwargs": "self", - "line_number": 73 + "line_number": 125 } }, { @@ -4057,16 +4091,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "2.1" ], - "name": "_get_next_month", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", "kwargs": "self, date", - "line_number": 101 + "line_number": 149 } }, { @@ -4079,45 +4113,11 @@ "Django", "2.1" ], - "name": "get_next_month", - "docstring": "Get the next valid month.", - "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", - "kwargs": "self, date", - "line_number": 93 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "LogoutView", - "django.contrib.auth.views", - "Django", - "2.1" - ], - "name": "get_next_page", - "docstring": "", - "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = is_safe_url(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", - "kwargs": "self", - "line_number": 127 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "WeekMixin", - "django.views.generic.dates", - "Django", - "2.1" - ], - "name": "_get_next_week", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", "kwargs": "self, date", - "line_number": 199 + "line_number": 115 } }, { @@ -4125,16 +4125,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "MonthMixin", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_next_week", - "docstring": "Get the next valid week.", - "code": "def get_next_week(self, date):\n \"\"\"Get the next valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", - "kwargs": "self, date", - "line_number": 191 + "name": "get_month", + "docstring": "Return the month for which this view should display data.", + "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "kwargs": "self", + "line_number": 80 } }, { @@ -4142,16 +4142,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "2.1" ], - "name": "_get_next_year", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", - "kwargs": "self, date", - "line_number": 52 + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "kwargs": "self", + "line_number": 73 } }, { @@ -4159,16 +4159,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_next_year", - "docstring": "Get the next valid year.", - "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", + "name": "_get_next_month", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", "kwargs": "self, date", - "line_number": 44 + "line_number": 101 } }, { @@ -4176,16 +4176,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateDetailView", + "MonthMixin", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_object", - "docstring": "Get the object this request displays.", - "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", - "kwargs": "self, queryset=None", - "line_number": 571 + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "kwargs": "self, date", + "line_number": 93 } }, { @@ -4193,16 +4193,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_object", - "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\n \"Generic detail view %s must be called with either an object \"\n \"pk or a slug in the URLconf.\" % self.__class__.__name__\n )\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "kwargs": "self, queryset=None", - "line_number": 20 + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "kwargs": "self, date", + "line_number": 97 } }, { @@ -4210,16 +4210,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset.", - "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", - "kwargs": "self", - "line_number": 50 + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", + "kwargs": "self, date", + "line_number": 210 } }, { @@ -4227,16 +4227,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "WeekMixin", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", - "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", - "kwargs": "self", - "line_number": 311 + "name": "_get_next_week", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "kwargs": "self, date", + "line_number": 199 } }, { @@ -4244,16 +4244,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "kwargs": "self, queryset", - "line_number": 77 + "name": "get_next_week", + "docstring": "Get the next valid week.", + "code": "def get_next_week(self, date):\n \"\"\"Get the next valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "kwargs": "self, date", + "line_number": 191 } }, { @@ -4261,16 +4261,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_paginate_orphans", - "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", - "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", - "kwargs": "self", - "line_number": 90 + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "kwargs": "self, date", + "line_number": 195 } }, { @@ -4278,16 +4278,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", - "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", - "line_number": 83 + "name": "get_week", + "docstring": "Return the week for which this view should display data.", + "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", + "kwargs": "self", + "line_number": 178 } }, { @@ -4295,16 +4295,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_permission_denied_message", - "docstring": "Override this method to override the permission_denied_message attribute.", - "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", - "kwargs": "self", - "line_number": 29 + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", + "kwargs": "self, date", + "line_number": 214 } }, { @@ -4312,16 +4312,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_permission_required", - "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", - "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required,)\n else:\n perms = self.permission_required\n return perms\n", + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", "kwargs": "self", - "line_number": 59 + "line_number": 171 } }, { @@ -4329,16 +4329,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_prefix", - "docstring": "Return the prefix to use for forms.", - "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", - "kwargs": "self", - "line_number": 21 + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", + "kwargs": "self, date", + "line_number": 63 } }, { @@ -4346,16 +4346,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "YearMixin", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_previous_day", - "docstring": "Get the previous valid day.", - "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "name": "_get_next_year", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", "kwargs": "self, date", - "line_number": 149 + "line_number": 52 } }, { @@ -4363,16 +4363,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "YearMixin", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_previous_month", - "docstring": "Get the previous valid month.", - "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "name": "get_next_year", + "docstring": "Get the next valid year.", + "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", "kwargs": "self, date", - "line_number": 97 + "line_number": 44 } }, { @@ -4380,16 +4380,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "YearMixin", "django.views.generic.dates", "Django", "2.1" ], - "name": "get_previous_week", - "docstring": "Get the previous valid week.", - "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "name": "get_previous_year", + "docstring": "Get the previous valid year.", + "code": "def get_previous_year(self, date):\n \"\"\"Get the previous valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", "kwargs": "self, date", - "line_number": 195 + "line_number": 48 } }, { @@ -4402,11 +4402,11 @@ "Django", "2.1" ], - "name": "get_previous_year", - "docstring": "Get the previous valid year.", - "code": "def get_previous_year(self, date):\n \"\"\"Get the previous valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", - "kwargs": "self, date", - "line_number": 48 + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "kwargs": "self", + "line_number": 31 } }, { @@ -4414,16 +4414,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "2.1" ], - "name": "get_queryset", - "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", - "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", "kwargs": "self", - "line_number": 58 + "line_number": 24 } }, { @@ -4431,16 +4431,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.1" ], - "name": "get_queryset", - "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", - "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", - "kwargs": "self", - "line_number": 21 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 105 } }, { @@ -4448,16 +4448,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.1" ], - "name": "get_redirect_field_name", - "docstring": "Override this method to override the redirect_field_name attribute.", - "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", - "kwargs": "self", - "line_number": 35 + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 91 } }, { @@ -4465,16 +4465,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.1" ], - "name": "get_redirect_url", - "docstring": "Return the user-originating redirect URL if it's safe.", - "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = is_safe_url(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", - "kwargs": "self", - "line_number": 67 + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 82 } }, { @@ -4482,16 +4482,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.1" ], - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", - "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", - "kwargs": "self, *args, **kwargs", - "line_number": 160 + "name": "get_object", + "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\n \"Generic detail view %s must be called with either an object \"\n \"pk or a slug in the URLconf.\" % self.__class__.__name__\n )\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 20 } }, { @@ -4504,11 +4504,11 @@ "Django", "2.1" ], - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", - "code": "def get_slug_field(self):\n \"\"\"Get the name of a slug field to be used to look up by slug.\"\"\"\n return self.slug_field\n", + "name": "get_queryset", + "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", "kwargs": "self", - "line_number": 78 + "line_number": 58 } }, { @@ -4516,16 +4516,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.1" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"Get the name of a slug field to be used to look up by slug.\"\"\"\n return self.slug_field\n", "kwargs": "self", - "line_number": 110 + "line_number": 78 } }, { @@ -4533,16 +4533,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.1" ], - "name": "get_success_url", - "docstring": "", - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response() is overridden. Return the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response() is overridden. Return the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif getattr(self, 'model', None) is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", "kwargs": "self", - "line_number": 220 + "line_number": 115 } }, { @@ -4550,16 +4550,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", + "BaseCreateView", "django.views.generic.edit", "Django", "2.1" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", - "kwargs": "self", - "line_number": 49 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 166 } }, { @@ -4567,16 +4567,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseCreateView", + "django.views.generic.edit", "Django", "2.1" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", - "kwargs": "self", - "line_number": 63 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 170 } }, { @@ -4584,16 +4584,16 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "BaseUpdateView", + "django.views.generic.edit", "Django", "2.1" ], - "name": "get_success_url_allowed_hosts", - "docstring": "", - "code": "def get_success_url_allowed_hosts(self):\n return {self.request.get_host(), *self.success_url_allowed_hosts}\n", - "kwargs": "self", - "line_number": 34 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 188 } }, { @@ -4601,16 +4601,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseUpdateView", + "django.views.generic.edit", "Django", "2.1" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n elif not names:\n raise ImproperlyConfigured(\n \"%(cls)s requires either a 'template_name' attribute \"\n \"or a get_queryset() method that returns a QuerySet.\" % {\n 'cls': self.__class__.__name__,\n }\n )\n return names\n", - "kwargs": "self", - "line_number": 165 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 192 } }, { @@ -4618,16 +4618,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response() is overridden. Return the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response() is overridden. Return the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif getattr(self, 'model', None) is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", - "kwargs": "self", - "line_number": 115 + "name": "delete", + "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 206 } }, { @@ -4635,16 +4635,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", "kwargs": "self", - "line_number": 131 + "line_number": 220 } }, { @@ -4652,16 +4652,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "get_test_func", - "docstring": "Override this method to use a different test_func method.", - "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", - "kwargs": "self", - "line_number": 99 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 217 } }, { @@ -4669,16 +4669,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "get_user", - "docstring": "", - "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", - "kwargs": "self, uidb64", - "line_number": 284 + "name": "form_invalid", + "docstring": "If the form is invalid, render the invalid form.", + "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 59 } }, { @@ -4686,16 +4686,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "get_week", - "docstring": "Return the week for which this view should display data.", - "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", - "kwargs": "self", - "line_number": 178 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 55 } }, { @@ -4703,16 +4703,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "kwargs": "self, date", - "line_number": 214 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", + "kwargs": "self, **kwargs", + "line_number": 63 } }, { @@ -4720,16 +4720,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", - "kwargs": "self", - "line_number": 171 + "name": "get_form", + "docstring": "Return an instance of the form to be used in this view.", + "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class=None", + "line_number": 29 } }, { @@ -4737,16 +4737,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "get_year", - "docstring": "Return the year for which this view should display data.", - "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", "kwargs": "self", - "line_number": 31 + "line_number": 25 } }, { @@ -4754,16 +4754,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", "kwargs": "self", - "line_number": 24 + "line_number": 35 } }, { @@ -4771,16 +4771,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "handle_no_permission", - "docstring": "", - "code": "def handle_no_permission(self):\n if self.raise_exception or self.request.user.is_authenticated:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "name": "get_initial", + "docstring": "Return the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", "kwargs": "self", - "line_number": 41 + "line_number": 17 } }, { @@ -4788,16 +4788,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "has_permission", - "docstring": "Override this method to customize the way permissions are checked.", - "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "name": "get_prefix", + "docstring": "Return the prefix to use for forms.", + "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", "kwargs": "self", - "line_number": 75 + "line_number": 21 } }, { @@ -4805,16 +4805,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "head", - "docstring": "", - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 192 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", + "kwargs": "self", + "line_number": 49 } }, { @@ -4822,16 +4822,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", - "Django", - "2.1" - ], - "name": "http_method_not_allowed", - "docstring": "", - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 90 + "ModelFormMixin", + "django.views.generic.edit", + "Django", + "2.1" + ], + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 123 } }, { @@ -4839,16 +4839,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", - "kwargs": "self, **kwargs", - "line_number": 38 + "name": "get_form_class", + "docstring": "Return the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif getattr(self, 'object', None) is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "kwargs": "self", + "line_number": 74 } }, { @@ -4856,16 +4856,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value)\n return value\n", - "kwargs": "self, value", - "line_number": 260 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 103 } }, { @@ -4873,16 +4873,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "kwargs": "self, date", - "line_number": 273 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 110 } }, { @@ -4890,16 +4890,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.1" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 97 + "line_number": 131 } }, { @@ -4907,16 +4907,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.1" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handle POST requests: instantiate a form instance with the passed\n POST variables and then check if it's valid.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 198 + "line_number": 135 } }, { @@ -4924,16 +4924,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.1" ], - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", - "kwargs": "self, queryset, page_size", - "line_number": 54 + "name": "put", + "docstring": "", + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 148 } }, { @@ -4941,16 +4941,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseListView", + "django.views.generic.list", "Django", "2.1" ], - "name": "patch", + "name": "get", "docstring": "", - "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = not self.object_list\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\") % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 207 + "line_number": 141 } }, { @@ -4958,16 +4958,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handle POST requests: instantiate a form instance with the passed\n POST variables and then check if it's valid.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 135 + "name": "get_allow_empty", + "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 97 } }, { @@ -4975,16 +4975,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "post", - "docstring": "Logout may be done via POST.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 123 + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, *, object_list=None, **kwargs", + "line_number": 113 } }, { @@ -4992,16 +4992,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 170 + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 104 } }, { @@ -5009,16 +5009,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 192 + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset.", + "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", + "kwargs": "self", + "line_number": 50 } }, { @@ -5026,16 +5026,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 195 + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 77 } }, { @@ -5043,16 +5043,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 217 + "name": "get_paginate_orphans", + "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", + "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "kwargs": "self", + "line_number": 90 } }, { @@ -5060,16 +5060,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "put", - "docstring": "", - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 148 + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", + "line_number": 83 } }, { @@ -5077,16 +5077,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "put", - "docstring": "", - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 204 + "name": "get_queryset", + "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", + "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "kwargs": "self", + "line_number": 21 } }, { @@ -5094,16 +5094,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "render_to_response", - "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", - "kwargs": "self, context, **response_kwargs", - "line_number": 115 + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 54 } }, { @@ -5111,16 +5111,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.1" ], - "name": "test_func", - "docstring": "", - "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n elif not names:\n raise ImproperlyConfigured(\n \"%(cls)s requires either a 'template_name' attribute \"\n \"or a get_queryset() method that returns a QuerySet.\" % {\n 'cls': self.__class__.__name__,\n }\n )\n return names\n", "kwargs": "self", - "line_number": 94 + "line_number": 165 } }, { @@ -5128,14 +5128,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], @@ -5147,14 +5147,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], @@ -5166,14 +5166,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], "child": [ - "BaseListView", - "django.views.generic.list", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "2.1" ], @@ -5185,14 +5185,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "2.1" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "LoginView", + "django.contrib.auth.views", "Django", "2.1" ], @@ -5204,18 +5204,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "FormView", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5223,14 +5223,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "2.1" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "2.1" ], @@ -5242,18 +5242,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "TemplateView", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "LogoutView", + "django.contrib.auth.views", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5261,14 +5261,14 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.1" ], "child": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.1" ], @@ -5280,18 +5280,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5299,14 +5299,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.1" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.1" ], @@ -5318,18 +5318,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5337,14 +5337,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.1" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "2.1" ], @@ -5356,18 +5356,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5375,13 +5375,13 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", + "PasswordContextMixin", "django.contrib.auth.views", "Django", "2.1" ], "child": [ - "LogoutView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.1" @@ -5394,18 +5394,18 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "FormView", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "LoginView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5413,14 +5413,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.1" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "2.1" ], @@ -5432,18 +5432,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "TemplateView", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "PasswordResetView", + "PasswordResetDoneView", "django.contrib.auth.views", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5451,14 +5451,14 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.1" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.1" ], @@ -5470,18 +5470,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", + "FormView", "django.views.generic.edit", "Django", "2.1" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5489,14 +5489,14 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "2.1" ], @@ -5508,14 +5508,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "TemplateView", + "django.views.generic.base", "Django", "2.1" ], @@ -5527,7 +5527,7 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", + "ContextMixin", "django.views.generic.base", "Django", "2.1" @@ -5538,7 +5538,7 @@ "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5546,18 +5546,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", + "View", "django.views.generic.base", "Django", "2.1" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "2.1" ], - "order": 0 + "order": 2 } }, { @@ -5565,14 +5565,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.1" ], "child": [ - "FormView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "2.1" ], @@ -5584,18 +5584,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", + "BaseArchiveIndexView", "django.views.generic.dates", "Django", "2.1" ], "child": [ - "BaseArchiveIndexView", + "ArchiveIndexView", "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5603,14 +5603,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "2.1" ], @@ -5622,14 +5622,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "2.1" ], @@ -5641,18 +5641,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "MonthMixin", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5660,18 +5660,18 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 2 } }, { @@ -5679,18 +5679,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DateMixin", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 3 } }, { @@ -5698,18 +5698,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.1" ], "child": [ - "RedirectView", - "django.views.generic.base", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 4 } }, { @@ -5717,14 +5717,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.1" ], @@ -5736,18 +5736,18 @@ "pk": null, "fields": { "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5755,18 +5755,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "View", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 2 } }, { @@ -5774,14 +5774,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], @@ -5793,18 +5793,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5812,18 +5812,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "YearArchiveView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 2 } }, { @@ -5831,18 +5831,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 3 } }, { @@ -5850,14 +5850,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.1" ], @@ -5869,18 +5869,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "CreateView", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5888,18 +5888,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "DetailView", - "django.views.generic.detail", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 2 } }, { @@ -5907,13 +5907,13 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "DateDetailView", + "BaseTodayArchiveView", "django.views.generic.dates", "Django", "2.1" @@ -5926,13 +5926,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "WeekArchiveView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "2.1" @@ -5945,18 +5945,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WeekMixin", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -5964,18 +5964,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "TodayArchiveView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 2 } }, { @@ -5983,13 +5983,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "MonthArchiveView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "2.1" @@ -6002,18 +6002,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 0 + "order": 1 } }, { @@ -6021,18 +6021,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.1" ], "child": [ - "TemplateView", - "django.views.generic.base", + "DateDetailView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6040,14 +6040,14 @@ "pk": null, "fields": { "parent": [ - "BaseListView", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "ListView", - "django.views.generic.list", + "DateDetailView", + "django.views.generic.dates", "Django", "2.1" ], @@ -6059,18 +6059,18 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.1" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6078,14 +6078,14 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], @@ -6097,18 +6097,18 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.1" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "MonthArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6116,14 +6116,14 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "MonthArchiveView", + "django.views.generic.dates", "Django", "2.1" ], @@ -6135,18 +6135,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.1" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6154,14 +6154,14 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "2.1" ], @@ -6173,18 +6173,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.1" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "WeekArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6192,14 +6192,14 @@ "pk": null, "fields": { "parent": [ - "BaseUpdateView", - "django.views.generic.edit", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "WeekArchiveView", + "django.views.generic.dates", "Django", "2.1" ], @@ -6211,18 +6211,18 @@ "pk": null, "fields": { "parent": [ - "BaseFormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.1" ], "child": [ - "FormView", - "django.views.generic.edit", + "YearArchiveView", + "django.views.generic.dates", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6230,14 +6230,14 @@ "pk": null, "fields": { "parent": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.1" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "YearArchiveView", + "django.views.generic.dates", "Django", "2.1" ], @@ -6249,18 +6249,18 @@ "pk": null, "fields": { "parent": [ - "BaseCreateView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.1" ], "child": [ - "CreateView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6268,14 +6268,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.1" ], @@ -6287,18 +6287,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", + "SingleObjectTemplateResponseMixin", "django.views.generic.detail", "Django", "2.1" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "DetailView", + "django.views.generic.detail", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6325,18 +6325,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6344,18 +6344,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6363,18 +6363,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6382,14 +6382,14 @@ "pk": null, "fields": { "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "2.1" ], @@ -6401,18 +6401,18 @@ "pk": null, "fields": { "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6420,14 +6420,14 @@ "pk": null, "fields": { "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.1" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "2.1" ], @@ -6439,18 +6439,18 @@ "pk": null, "fields": { "parent": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6458,14 +6458,14 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "2.1" ], @@ -6477,18 +6477,18 @@ "pk": null, "fields": { "parent": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "WeekArchiveView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6496,14 +6496,14 @@ "pk": null, "fields": { "parent": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "2.1" ], @@ -6515,18 +6515,18 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.1" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6534,14 +6534,14 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "2.1" ], @@ -6553,18 +6553,18 @@ "pk": null, "fields": { "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.1" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6572,14 +6572,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseDeleteView", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "BaseListView", - "django.views.generic.list", + "DeleteView", + "django.views.generic.edit", "Django", "2.1" ], @@ -6591,18 +6591,18 @@ "pk": null, "fields": { "parent": [ - "View", + "ContextMixin", "django.views.generic.base", "Django", "2.1" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6610,18 +6610,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", + "TemplateResponseMixin", "django.views.generic.base", "Django", "2.1" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "FormView", + "django.views.generic.edit", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6629,14 +6629,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "BaseFormView", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "FormView", + "django.views.generic.edit", "Django", "2.1" ], @@ -6648,18 +6648,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.1" ], - "order": 1 + "order": 0 } }, { @@ -6667,14 +6667,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.1" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.1" ], @@ -6686,18 +6686,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.1" ], - "order": 2 + "order": 0 } }, { @@ -6705,18 +6705,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.1" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "2.1" ], - "order": 2 + "order": 0 } }, { @@ -6724,18 +6724,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "2.1" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "2.1" ], - "order": 2 + "order": 1 } }, { @@ -6743,18 +6743,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], "child": [ - "TemplateView", - "django.views.generic.base", + "BaseListView", + "django.views.generic.list", "Django", "2.1" ], - "order": 2 + "order": 0 } }, { @@ -6762,18 +6762,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "2.1" ], - "order": 2 + "order": 1 } }, { @@ -6781,18 +6781,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.1" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "2.1" ], - "order": 2 + "order": 0 } }, { @@ -6800,18 +6800,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "2.1" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "2.1" ], - "order": 3 + "order": 1 } }, { @@ -6819,18 +6819,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.1" ], - "order": 3 + "order": 0 } }, { @@ -6838,18 +6838,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.1" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.1" ], - "order": 4 + "order": 0 } } ] diff --git a/cbv/fixtures/2.2.json b/cbv/fixtures/2.2.json index da6db653..e9222872 100644 --- a/cbv/fixtures/2.2.json +++ b/cbv/fixtures/2.2.json @@ -16,9 +16,9 @@ "Django", "2.2" ], - "name": "django.views.generic", + "name": "django.contrib.auth.mixins", "docstring": "", - "filename": "/django/views/generic/__init__.py" + "filename": "/django/contrib/auth/mixins.py" } }, { @@ -28,9 +28,9 @@ "Django", "2.2" ], - "name": "django.views.generic.base", + "name": "django.contrib.auth.views", "docstring": "", - "filename": "/django/views/generic/base.py" + "filename": "/django/contrib/auth/views.py" } }, { @@ -40,9 +40,9 @@ "Django", "2.2" ], - "name": "django.views.generic.dates", + "name": "django.views.generic", "docstring": "", - "filename": "/django/views/generic/dates.py" + "filename": "/django/views/generic/__init__.py" } }, { @@ -52,9 +52,9 @@ "Django", "2.2" ], - "name": "django.views.generic.detail", + "name": "django.views.generic.base", "docstring": "", - "filename": "/django/views/generic/detail.py" + "filename": "/django/views/generic/base.py" } }, { @@ -64,9 +64,9 @@ "Django", "2.2" ], - "name": "django.views.generic.edit", + "name": "django.views.generic.dates", "docstring": "", - "filename": "/django/views/generic/edit.py" + "filename": "/django/views/generic/dates.py" } }, { @@ -76,9 +76,9 @@ "Django", "2.2" ], - "name": "django.views.generic.list", + "name": "django.views.generic.detail", "docstring": "", - "filename": "/django/views/generic/list.py" + "filename": "/django/views/generic/detail.py" } }, { @@ -88,9 +88,9 @@ "Django", "2.2" ], - "name": "django.contrib.auth.views", + "name": "django.views.generic.edit", "docstring": "", - "filename": "/django/contrib/auth/views.py" + "filename": "/django/views/generic/edit.py" } }, { @@ -100,9 +100,9 @@ "Django", "2.2" ], - "name": "django.contrib.auth.mixins", + "name": "django.views.generic.list", "docstring": "", - "filename": "/django/contrib/auth/mixins.py" + "filename": "/django/views/generic/list.py" } }, { @@ -1010,13 +1010,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], - "name": "allow_empty", - "value": "True", + "name": "login_url", + "value": "None", "line_number": -1 } }, @@ -1025,13 +1025,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], - "name": "allow_empty", - "value": "False", + "name": "permission_denied_message", + "value": "''", "line_number": -1 } }, @@ -1040,12 +1040,12 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], - "name": "allow_future", + "name": "raise_exception", "value": "False", "line_number": -1 } @@ -1055,13 +1055,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], - "name": "args", - "value": "", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1070,12 +1070,12 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], - "name": "authentication_form", + "name": "permission_required", "value": "None", "line_number": -1 } @@ -1085,27 +1085,12 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", - "Django", - "2.2" - ], - "name": "__cause__", - "value": "", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "content_type", + "name": "authentication_form", "value": "None", "line_number": -1 } @@ -1115,14 +1100,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "__context__", - "value": "", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 156 } }, { @@ -1130,13 +1115,13 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "context_object_name", - "value": "'latest'", + "name": "redirect_authenticated_user", + "value": "False", "line_number": -1 } }, @@ -1145,13 +1130,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "LoginView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "context_object_name", - "value": "None", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1160,13 +1145,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "LoginView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "context_object_name", - "value": "None", + "name": "template_name", + "value": "'registration/login.html'", "line_number": -1 } }, @@ -1175,12 +1160,12 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "date_field", + "name": "next_page", "value": "None", "line_number": -1 } @@ -1190,13 +1175,13 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "date_list_period", - "value": "'day'", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1205,13 +1190,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "date_list_period", - "value": "'year'", + "name": "template_name", + "value": "'registration/logged_out.html'", "line_number": -1 } }, @@ -1220,13 +1205,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "date_list_period", - "value": "'month'", + "name": "template_name", + "value": "'registration/password_change_done.html'", "line_number": -1 } }, @@ -1235,13 +1220,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "day", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password change successful')", "line_number": -1 } }, @@ -1250,14 +1235,14 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "day_format", - "value": "'%d'", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 343 } }, { @@ -1265,13 +1250,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "__delattr__", - "value": "", + "name": "success_url", + "value": "reverse_lazy('password_change_done')", "line_number": -1 } }, @@ -1280,13 +1265,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordChangeView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "email_template_name", - "value": "'registration/password_reset_email.html'", + "name": "template_name", + "value": "'registration/password_change_form.html'", "line_number": -1 } }, @@ -1295,13 +1280,13 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", - "django.views.generic.base", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "extra_context", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password change')", "line_number": -1 } }, @@ -1325,13 +1310,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetCompleteView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "extra_email_context", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_complete.html'", "line_number": -1 } }, @@ -1340,13 +1325,13 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "fields", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password reset complete')", "line_number": -1 } }, @@ -1370,14 +1355,14 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "form_class", - "value": "", - "line_number": 232 + "name": "post_reset_login", + "value": "False", + "line_number": -1 } }, { @@ -1385,14 +1370,14 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "form_class", - "value": "", - "line_number": 156 + "name": "post_reset_login_backend", + "value": "None", + "line_number": -1 } }, { @@ -1400,13 +1385,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "form_class", - "value": "None", + "name": "success_url", + "value": "reverse_lazy('password_reset_complete')", "line_number": -1 } }, @@ -1415,14 +1400,14 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "form_class", - "value": "", - "line_number": 343 + "name": "template_name", + "value": "'registration/password_reset_confirm.html'", + "line_number": -1 } }, { @@ -1430,13 +1415,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "from_email", - "value": "None", + "name": "title", + "value": "gettext_lazy('Enter new password')", "line_number": -1 } }, @@ -1445,13 +1430,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "__getattribute__", - "value": "", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1460,13 +1445,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetDoneView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "html_email_template_name", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_done.html'", "line_number": -1 } }, @@ -1475,13 +1460,13 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "http_method_names", - "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "name": "title", + "value": "gettext_lazy('Password reset sent')", "line_number": -1 } }, @@ -1490,13 +1475,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "__init__", - "value": "", + "name": "email_template_name", + "value": "'registration/password_reset_email.html'", "line_number": -1 } }, @@ -1505,13 +1490,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "initial", - "value": "{}", + "name": "extra_email_context", + "value": "None", "line_number": -1 } }, @@ -1520,14 +1505,14 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "login_url", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 232 } }, { @@ -1535,13 +1520,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "make_object_list", - "value": "False", + "name": "from_email", + "value": "None", "line_number": -1 } }, @@ -1550,12 +1535,12 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "model", + "name": "html_email_template_name", "value": "None", "line_number": -1 } @@ -1565,13 +1550,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "model", - "value": "None", + "name": "subject_template_name", + "value": "'registration/password_reset_subject.txt'", "line_number": -1 } }, @@ -1580,13 +1565,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "month", - "value": "None", + "name": "success_url", + "value": "reverse_lazy('password_reset_done')", "line_number": -1 } }, @@ -1595,13 +1580,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "month_format", - "value": "'%b'", + "name": "template_name", + "value": "'registration/password_reset_form.html'", "line_number": -1 } }, @@ -1610,13 +1595,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", + "PasswordResetView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "next_page", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password reset')", "line_number": -1 } }, @@ -1625,13 +1610,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "ordering", - "value": "None", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1640,13 +1625,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "page_kwarg", - "value": "'page'", + "name": "success_url_allowed_hosts", + "value": "set()", "line_number": -1 } }, @@ -1655,13 +1640,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "paginate_by", - "value": "None", + "name": "args", + "value": "", "line_number": -1 } }, @@ -1670,13 +1655,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "paginate_orphans", - "value": "0", + "name": "__cause__", + "value": "", "line_number": -1 } }, @@ -1685,14 +1670,14 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "paginator_class", - "value": "", - "line_number": 28 + "name": "__context__", + "value": "", + "line_number": -1 } }, { @@ -1700,13 +1685,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "pattern_name", - "value": "None", + "name": "__delattr__", + "value": "", "line_number": -1 } }, @@ -1715,13 +1700,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "permanent", - "value": "False", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -1730,13 +1715,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "permission_denied_message", - "value": "''", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -1745,13 +1730,13 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "permission_required", - "value": "None", + "name": "__reduce__", + "value": "", "line_number": -1 } }, @@ -1760,13 +1745,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "pk_url_kwarg", - "value": "'pk'", + "name": "__repr__", + "value": "", "line_number": -1 } }, @@ -1775,13 +1760,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "post_reset_login", - "value": "False", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -1790,13 +1775,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "post_reset_login_backend", - "value": "None", + "name": "__setstate__", + "value": "", "line_number": -1 } }, @@ -1805,13 +1790,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "prefix", - "value": "None", + "name": "__str__", + "value": "", "line_number": -1 } }, @@ -1820,13 +1805,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "query_pk_and_slug", - "value": "False", + "name": "__suppress_context__", + "value": "", "line_number": -1 } }, @@ -1835,13 +1820,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "queryset", - "value": "None", + "name": "__traceback__", + "value": "", "line_number": -1 } }, @@ -1850,13 +1835,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "2.2" ], - "name": "queryset", - "value": "None", + "name": "with_traceback", + "value": "", "line_number": -1 } }, @@ -1865,13 +1850,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", + "ContextMixin", "django.views.generic.base", "Django", "2.2" ], - "name": "query_string", - "value": "False", + "name": "extra_context", + "value": "None", "line_number": -1 } }, @@ -1880,13 +1865,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "RedirectView", + "django.views.generic.base", "Django", "2.2" ], - "name": "raise_exception", - "value": "False", + "name": "pattern_name", + "value": "None", "line_number": -1 } }, @@ -1895,12 +1880,12 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "2.2" ], - "name": "redirect_authenticated_user", + "name": "permanent", "value": "False", "line_number": -1 } @@ -1910,13 +1895,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "RedirectView", + "django.views.generic.base", "Django", "2.2" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "query_string", + "value": "False", "line_number": -1 } }, @@ -1925,13 +1910,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "2.2" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "url", + "value": "None", "line_number": -1 } }, @@ -1940,13 +1925,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.2" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "content_type", + "value": "None", "line_number": -1 } }, @@ -1955,14 +1940,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.2" ], - "name": "__reduce__", - "value": "", - "line_number": -1 + "name": "response_class", + "value": "", + "line_number": 139 } }, { @@ -1970,13 +1955,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.2" ], - "name": "__repr__", - "value": "", + "name": "template_engine", + "value": "None", "line_number": -1 } }, @@ -1990,9 +1975,9 @@ "Django", "2.2" ], - "name": "response_class", - "value": "", - "line_number": 139 + "name": "template_name", + "value": "None", + "line_number": -1 } }, { @@ -2000,13 +1985,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "View", + "django.views.generic.base", "Django", "2.2" ], - "name": "__setattr__", - "value": "", + "name": "http_method_names", + "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", "line_number": -1 } }, @@ -2015,13 +2000,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "__setstate__", - "value": "", + "name": "template_name_suffix", + "value": "'_archive'", "line_number": -1 } }, @@ -2030,13 +2015,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "slug_field", - "value": "'slug'", + "name": "context_object_name", + "value": "'latest'", "line_number": -1 } }, @@ -2045,13 +2030,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "slug_url_kwarg", - "value": "'slug'", + "name": "allow_empty", + "value": "False", "line_number": -1 } }, @@ -2060,13 +2045,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "__str__", - "value": "", + "name": "date_list_period", + "value": "'year'", "line_number": -1 } }, @@ -2075,13 +2060,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "subject_template_name", - "value": "'registration/password_reset_subject.txt'", + "name": "date_list_period", + "value": "'day'", "line_number": -1 } }, @@ -2090,13 +2075,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_complete')", + "name": "date_list_period", + "value": "'month'", "line_number": -1 } }, @@ -2105,13 +2090,13 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "success_url", - "value": "None", + "name": "make_object_list", + "value": "False", "line_number": -1 } }, @@ -2120,13 +2105,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "success_url", - "value": "None", + "name": "allow_future", + "value": "False", "line_number": -1 } }, @@ -2135,13 +2120,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_done')", + "name": "date_field", + "value": "None", "line_number": -1 } }, @@ -2150,13 +2135,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "success_url", - "value": "reverse_lazy('password_change_done')", + "name": "uses_datetime_field", + "value": "", "line_number": -1 } }, @@ -2165,13 +2150,13 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "success_url_allowed_hosts", - "value": "set()", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2180,13 +2165,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "DayMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "__suppress_context__", - "value": "", + "name": "day", + "value": "None", "line_number": -1 } }, @@ -2195,13 +2180,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DayMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "template_engine", - "value": "None", + "name": "day_format", + "value": "'%d'", "line_number": -1 } }, @@ -2210,13 +2195,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "MonthArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "template_name", - "value": "'registration/password_reset_form.html'", + "name": "template_name_suffix", + "value": "'_archive_month'", "line_number": -1 } }, @@ -2225,13 +2210,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "template_name", - "value": "'registration/password_reset_confirm.html'", + "name": "month", + "value": "None", "line_number": -1 } }, @@ -2240,13 +2225,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "template_name", - "value": "'registration/password_change_done.html'", + "name": "month_format", + "value": "'%b'", "line_number": -1 } }, @@ -2255,13 +2240,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "TodayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "template_name", - "value": "'registration/login.html'", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2270,13 +2255,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "template_name", - "value": "'registration/password_reset_done.html'", + "name": "template_name_suffix", + "value": "'_archive_week'", "line_number": -1 } }, @@ -2285,13 +2270,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "template_name", - "value": "'registration/password_reset_complete.html'", + "name": "week", + "value": "None", "line_number": -1 } }, @@ -2300,13 +2285,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "template_name", - "value": "'registration/password_change_form.html'", + "name": "week_format", + "value": "'%U'", "line_number": -1 } }, @@ -2315,13 +2300,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "YearArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "template_name", - "value": "'registration/logged_out.html'", + "name": "template_name_suffix", + "value": "'_archive_year'", "line_number": -1 } }, @@ -2330,12 +2315,12 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "template_name", + "name": "year", "value": "None", "line_number": -1 } @@ -2345,13 +2330,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "template_name_field", - "value": "None", + "name": "year_format", + "value": "'%Y'", "line_number": -1 } }, @@ -2360,13 +2345,13 @@ "pk": null, "fields": { "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.2" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -2375,13 +2360,13 @@ "pk": null, "fields": { "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.2" ], - "name": "template_name_suffix", - "value": "'_archive_month'", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2390,13 +2375,13 @@ "pk": null, "fields": { "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.2" ], - "name": "template_name_suffix", - "value": "'_archive_week'", + "name": "pk_url_kwarg", + "value": "'pk'", "line_number": -1 } }, @@ -2405,13 +2390,13 @@ "pk": null, "fields": { "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.2" ], - "name": "template_name_suffix", - "value": "'_archive_year'", + "name": "query_pk_and_slug", + "value": "False", "line_number": -1 } }, @@ -2420,13 +2405,13 @@ "pk": null, "fields": { "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.2" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "queryset", + "value": "None", "line_number": -1 } }, @@ -2435,13 +2420,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "2.2" ], - "name": "template_name_suffix", - "value": "'_detail'", + "name": "slug_field", + "value": "'slug'", "line_number": -1 } }, @@ -2450,13 +2435,13 @@ "pk": null, "fields": { "klass": [ - "UpdateView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.2" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "slug_url_kwarg", + "value": "'slug'", "line_number": -1 } }, @@ -2465,13 +2450,13 @@ "pk": null, "fields": { "klass": [ - "DeleteView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.2" ], - "name": "template_name_suffix", - "value": "'_confirm_delete'", + "name": "template_name_field", + "value": "None", "line_number": -1 } }, @@ -2480,13 +2465,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.2" ], "name": "template_name_suffix", - "value": "'_list'", + "value": "'_detail'", "line_number": -1 } }, @@ -2495,13 +2480,13 @@ "pk": null, "fields": { "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "2.2" ], "name": "template_name_suffix", - "value": "'_archive'", + "value": "'_form'", "line_number": -1 } }, @@ -2510,13 +2495,13 @@ "pk": null, "fields": { "klass": [ - "CreateView", + "DeleteView", "django.views.generic.edit", "Django", "2.2" ], "name": "template_name_suffix", - "value": "'_form'", + "value": "'_confirm_delete'", "line_number": -1 } }, @@ -2525,13 +2510,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "title", - "value": "gettext_lazy('Password reset sent')", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2540,13 +2525,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "title", - "value": "gettext_lazy('Password reset complete')", + "name": "form_class", + "value": "None", "line_number": -1 } }, @@ -2555,13 +2540,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "title", - "value": "gettext_lazy('Password change successful')", + "name": "initial", + "value": "{}", "line_number": -1 } }, @@ -2570,13 +2555,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "title", - "value": "gettext_lazy('Password change')", + "name": "prefix", + "value": "None", "line_number": -1 } }, @@ -2585,13 +2570,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "title", - "value": "gettext_lazy('Password reset')", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2600,13 +2585,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "title", - "value": "gettext_lazy('Enter new password')", + "name": "fields", + "value": "None", "line_number": -1 } }, @@ -2615,13 +2600,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "UpdateView", + "django.views.generic.edit", "Django", "2.2" ], - "name": "token_generator", - "value": "", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -2630,13 +2615,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "token_generator", - "value": "", + "name": "allow_empty", + "value": "True", "line_number": -1 } }, @@ -2645,13 +2630,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "__traceback__", - "value": "", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -2660,12 +2645,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "url", + "name": "model", "value": "None", "line_number": -1 } @@ -2675,13 +2660,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "uses_datetime_field", - "value": "", + "name": "ordering", + "value": "None", "line_number": -1 } }, @@ -2690,13 +2675,13 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "week", - "value": "None", + "name": "page_kwarg", + "value": "'page'", "line_number": -1 } }, @@ -2705,13 +2690,13 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "week_format", - "value": "'%U'", + "name": "paginate_by", + "value": "None", "line_number": -1 } }, @@ -2720,13 +2705,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "with_traceback", - "value": "", + "name": "paginate_orphans", + "value": "0", "line_number": -1 } }, @@ -2735,14 +2720,14 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "year", - "value": "None", - "line_number": -1 + "name": "paginator_class", + "value": "", + "line_number": 28 } }, { @@ -2750,31 +2735,29 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "year_format", - "value": "'%Y'", + "name": "queryset", + "value": "None", "line_number": -1 } }, { - "model": "cbv.method", + "model": "cbv.klassattribute", "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "_allowed_methods", - "docstring": "", - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", - "kwargs": "self", - "line_number": 113 + "name": "template_name_suffix", + "value": "'_list'", + "line_number": -1 } }, { @@ -2782,16 +2765,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], - "name": "as_view", - "docstring": "Main entry point for a request-response process.", - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.setup(request, *args, **kwargs)\n if not hasattr(self, 'request'):\n raise AttributeError(\n \"%s instance has no 'request' attribute. Did you override \"\n \"setup() and forget to call super()?\" % cls.__name__\n )\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "kwargs": "cls, **initkwargs", - "line_number": 48 + "name": "get_login_url", + "docstring": "Override this method to override the login_url attribute.", + "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", + "kwargs": "self", + "line_number": 17 } }, { @@ -2799,16 +2782,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], - "name": "delete", - "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 206 + "name": "get_permission_denied_message", + "docstring": "Override this method to override the permission_denied_message attribute.", + "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "kwargs": "self", + "line_number": 29 } }, { @@ -2816,16 +2799,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], - "name": "delete", - "docstring": "", - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 210 + "name": "get_redirect_field_name", + "docstring": "Override this method to override the redirect_field_name attribute.", + "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", + "kwargs": "self", + "line_number": 35 } }, { @@ -2833,16 +2816,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], - "name": "dispatch", + "name": "handle_no_permission", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == INTERNAL_RESET_URL_TOKEN:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, INTERNAL_RESET_URL_TOKEN)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, *args, **kwargs", - "line_number": 255 + "code": "def handle_no_permission(self):\n if self.raise_exception or self.request.user.is_authenticated:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "kwargs": "self", + "line_number": 41 } }, { @@ -2850,14 +2833,14 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n if self.redirect_authenticated_user and self.request.user.is_authenticated:\n redirect_to = self.get_success_url()\n if redirect_to == self.request.path:\n raise ValueError(\n \"Redirection loop for authenticated user detected. Check that \"\n \"your LOGIN_REDIRECT_URL doesn't point to a login page.\"\n )\n return HttpResponseRedirect(redirect_to)\n return super().dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", "line_number": 49 } @@ -2867,16 +2850,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", + "PermissionRequiredMixin", "django.contrib.auth.mixins", "Django", "2.2" ], "name": "dispatch", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 105 + "line_number": 82 } }, { @@ -2884,33 +2867,33 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 357 - } -}, -{ - "model": "cbv.method", + "name": "get_permission_required", + "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", + "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required,)\n else:\n perms = self.permission_required\n return perms\n", + "kwargs": "self", + "line_number": 59 + } +}, +{ + "model": "cbv.method", "pk": null, "fields": { "klass": [ - "LoginRequiredMixin", + "PermissionRequiredMixin", "django.contrib.auth.mixins", "Django", "2.2" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 49 + "name": "has_permission", + "docstring": "Override this method to customize the way permissions are checked.", + "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "kwargs": "self", + "line_number": 75 } }, { @@ -2918,16 +2901,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 334 + "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 105 } }, { @@ -2935,16 +2918,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 218 + "name": "get_test_func", + "docstring": "Override this method to use a different test_func method.", + "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", + "kwargs": "self", + "line_number": 99 } }, { @@ -2952,16 +2935,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", + "UserPassesTestMixin", "django.contrib.auth.mixins", "Django", "2.2" ], - "name": "dispatch", + "name": "test_func", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 82 + "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "kwargs": "self", + "line_number": 94 } }, { @@ -2969,16 +2952,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", + "LoginView", "django.contrib.auth.views", "Django", "2.2" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n if self.redirect_authenticated_user and self.request.user.is_authenticated:\n redirect_to = self.get_success_url()\n if redirect_to == self.request.path:\n raise ValueError(\n \"Redirection loop for authenticated user detected. Check that \"\n \"your LOGIN_REDIRECT_URL doesn't point to a login page.\"\n )\n return HttpResponseRedirect(redirect_to)\n return super().dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 114 + "line_number": 49 } }, { @@ -2986,16 +2969,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 89 + "name": "form_valid", + "docstring": "Security check complete. Log the user in.", + "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 88 } }, { @@ -3003,16 +2986,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "form_invalid", - "docstring": "If the form is invalid, render the invalid form.", - "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "kwargs": "self, form", - "line_number": 59 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 93 } }, { @@ -3025,11 +3008,11 @@ "Django", "2.2" ], - "name": "form_valid", - "docstring": "Security check complete. Log the user in.", - "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 88 + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "kwargs": "self", + "line_number": 80 } }, { @@ -3037,16 +3020,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 55 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "kwargs": "self", + "line_number": 83 } }, { @@ -3054,16 +3037,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 123 + "name": "get_redirect_url", + "docstring": "Return the user-originating redirect URL if it's safe.", + "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = is_safe_url(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", + "kwargs": "self", + "line_number": 67 } }, { @@ -3071,16 +3054,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "LoginView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 345 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", + "kwargs": "self", + "line_number": 63 } }, { @@ -3088,16 +3071,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", + "LogoutView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 298 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 114 } }, { @@ -3105,16 +3088,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "LogoutView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 222 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 152 } }, { @@ -3122,16 +3105,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "LogoutView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 166 + "name": "get_next_page", + "docstring": "", + "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = is_safe_url(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", + "kwargs": "self", + "line_number": 127 } }, { @@ -3139,16 +3122,16 @@ "pk": null, "fields": { "klass": [ - "TemplateView", - "django.views.generic.base", + "LogoutView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "name": "post", + "docstring": "Logout may be done via POST.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 157 + "line_number": 123 } }, { @@ -3156,16 +3139,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "get", + "name": "dispatch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 187 + "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 357 } }, { @@ -3173,16 +3156,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "get", + "name": "dispatch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 298 + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 334 } }, { @@ -3190,16 +3173,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 188 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 345 } }, { @@ -3207,16 +3190,16 @@ "pk": null, "fields": { "klass": [ - "BaseListView", - "django.views.generic.list", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = not self.object_list\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\") % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 141 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "kwargs": "self", + "line_number": 340 } }, { @@ -3224,16 +3207,16 @@ "pk": null, "fields": { "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "get", + "name": "get_context_data", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 105 + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context.update({\n 'title': self.title,\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 197 } }, { @@ -3241,33 +3224,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", - "Django", - "2.2" - ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 131 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "get_allow_empty", - "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", - "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "kwargs": "self", - "line_number": 97 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 322 } }, { @@ -3275,16 +3241,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "get_allow_future", - "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", - "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", - "kwargs": "self", - "line_number": 240 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == INTERNAL_RESET_URL_TOKEN:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, INTERNAL_RESET_URL_TOKEN)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", + "kwargs": "self, *args, **kwargs", + "line_number": 255 } }, { @@ -3292,16 +3258,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "get_context_data", - "docstring": "Get the context for this view.", - "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", - "kwargs": "self, *, object_list=None, **kwargs", - "line_number": 113 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 298 } }, { @@ -3309,16 +3275,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.2" ], "name": "get_context_data", - "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n **(self.extra_context or {})\n })\n return context\n", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", "kwargs": "self, **kwargs", - "line_number": 152 + "line_number": 305 } }, { @@ -3326,16 +3292,16 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", - "django.views.generic.base", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.2" ], - "name": "get_context_data", - "docstring": "", - "code": "def get_context_data(self, **kwargs):\n kwargs.setdefault('view', self)\n if self.extra_context is not None:\n kwargs.update(self.extra_context)\n return kwargs\n", - "kwargs": "self, **kwargs", - "line_number": 23 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", + "kwargs": "self", + "line_number": 293 } }, { @@ -3343,16 +3309,16 @@ "pk": null, "fields": { "klass": [ - "PasswordContextMixin", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "get_context_data", + "name": "get_user", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context.update({\n 'title': self.title,\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 197 + "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", + "kwargs": "self, uidb64", + "line_number": 284 } }, { @@ -3360,16 +3326,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", + "PasswordResetView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "get_context_data", + "name": "dispatch", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 322 + "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 218 } }, { @@ -3377,16 +3343,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordResetView", "django.contrib.auth.views", "Django", "2.2" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 93 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 222 } }, { @@ -3394,16 +3360,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", + "SuccessURLAllowedHostsMixin", "django.contrib.auth.views", "Django", "2.2" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 305 + "name": "get_success_url_allowed_hosts", + "docstring": "", + "code": "def get_success_url_allowed_hosts(self):\n return {self.request.get_host(), *self.success_url_allowed_hosts}\n", + "kwargs": "self", + "line_number": 34 } }, { @@ -3411,16 +3377,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "2.2" ], "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n kwargs.setdefault('view', self)\n if self.extra_context is not None:\n kwargs.update(self.extra_context)\n return kwargs\n", "kwargs": "self, **kwargs", - "line_number": 63 + "line_number": 23 } }, { @@ -3428,16 +3394,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "2.2" ], - "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", - "kwargs": "self, **kwargs", - "line_number": 91 + "name": "delete", + "docstring": "", + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 210 } }, { @@ -3445,16 +3411,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "2.2" ], - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", - "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", - "kwargs": "self, obj", - "line_number": 82 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 187 } }, { @@ -3462,16 +3428,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "2.2" ], - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", - "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", - "kwargs": "self, object_list", - "line_number": 104 + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", + "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", + "kwargs": "self, *args, **kwargs", + "line_number": 169 } }, { @@ -3479,16 +3445,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "2.2" ], - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", - "kwargs": "self, date", - "line_number": 161 + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 201 } }, { @@ -3496,16 +3462,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "2.2" ], - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", - "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", - "kwargs": "self, date", - "line_number": 115 + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 207 } }, { @@ -3513,16 +3479,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "2.2" ], - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "kwargs": "self, date", - "line_number": 210 + "name": "patch", + "docstring": "", + "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 216 } }, { @@ -3530,16 +3496,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "2.2" ], - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", - "kwargs": "self, date", - "line_number": 63 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 204 } }, { @@ -3547,16 +3513,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "2.2" ], - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "kwargs": "self, date", - "line_number": 535 + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 213 } }, { @@ -3564,16 +3530,16 @@ "pk": null, "fields": { "klass": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.2" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n return self._get_dated_items(datetime.date.today())\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", "kwargs": "self", - "line_number": 560 + "line_number": 140 } }, { @@ -3581,16 +3547,16 @@ "pk": null, "fields": { "klass": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.2" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_choices = {'%W': '1', '%U': '0'}\n try:\n week_start = week_choices[week_format]\n except KeyError:\n raise ValueError('Unknown week format %r. Choices are: %s' % (\n week_format,\n ', '.join(sorted(week_choices)),\n ))\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", - "kwargs": "self", - "line_number": 481 + "name": "render_to_response", + "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 124 } }, { @@ -3598,16 +3564,16 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "2.2" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", - "kwargs": "self", - "line_number": 447 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 157 } }, { @@ -3615,16 +3581,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.2" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", + "name": "_allowed_methods", + "docstring": "", + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", "kwargs": "self", - "line_number": 402 + "line_number": 113 } }, { @@ -3632,16 +3598,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.2" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", - "kwargs": "self", - "line_number": 523 + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.setup(request, *args, **kwargs)\n if not hasattr(self, 'request'):\n raise AttributeError(\n \"%s instance has no 'request' attribute. Did you override \"\n \"setup() and forget to call super()?\" % cls.__name__\n )\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 48 } }, { @@ -3649,16 +3615,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.2" ], - "name": "get_dated_items", - "docstring": "Obtain the list of dates and items.", - "code": "def get_dated_items(self):\n \"\"\"Obtain the list of dates and items.\"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", - "kwargs": "self", - "line_number": 307 + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 89 } }, { @@ -3666,16 +3632,16 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.2" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", - "kwargs": "self", - "line_number": 381 + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 99 } }, { @@ -3683,16 +3649,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.2" ], - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", - "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = not qs if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n })\n return qs\n", - "kwargs": "self, **lookup", - "line_number": 318 + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", + "kwargs": "self, **kwargs", + "line_number": 38 } }, { @@ -3700,16 +3666,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.2" ], - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", - "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", - "kwargs": "self", - "line_number": 234 + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 106 } }, { @@ -3717,16 +3683,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.2" ], - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", - "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n raise Http404(\n _(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': queryset.model._meta.verbose_name_plural,\n }\n )\n return date_list\n", - "kwargs": "self, queryset, date_type=None, ordering='ASC'", - "line_number": 351 + "name": "setup", + "docstring": "Initialize attributes shared by all view methods.", + "code": "def setup(self, request, *args, **kwargs):\n \"\"\"Initialize attributes shared by all view methods.\"\"\"\n self.request = request\n self.args = args\n self.kwargs = kwargs\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 83 } }, { @@ -3734,16 +3700,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "BaseArchiveIndexView", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_date_list_period", - "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or\n'day'.", - "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or\n 'day'.\n \"\"\"\n return self.date_list_period\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", "kwargs": "self", - "line_number": 344 + "line_number": 381 } }, { @@ -3751,16 +3717,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateDetailView", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_day", - "docstring": "Return the day for which this view should display data.", - "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", - "kwargs": "self", - "line_number": 132 + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 575 } }, { @@ -3768,16 +3734,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", - "kwargs": "self", - "line_number": 125 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 298 } }, { @@ -3785,16 +3751,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_form", - "docstring": "Return an instance of the form to be used in this view.", - "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", - "kwargs": "self, form_class=None", - "line_number": 29 + "name": "get_dated_items", + "docstring": "Obtain the list of dates and items.", + "code": "def get_dated_items(self):\n \"\"\"Obtain the list of dates and items.\"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", + "kwargs": "self", + "line_number": 307 } }, { @@ -3802,16 +3768,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", - "kwargs": "self", - "line_number": 80 + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = not qs if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n })\n return qs\n", + "kwargs": "self, **lookup", + "line_number": 318 } }, { @@ -3819,16 +3785,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", - "kwargs": "self", - "line_number": 25 + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n raise Http404(\n _(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': queryset.model._meta.verbose_name_plural,\n }\n )\n return date_list\n", + "kwargs": "self, queryset, date_type=None, ordering='ASC'", + "line_number": 351 } }, { @@ -3836,16 +3802,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_form_class", - "docstring": "Return the form class to use in this view.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif getattr(self, 'object', None) is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "name": "get_date_list_period", + "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or\n'day'.", + "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or\n 'day'.\n \"\"\"\n return self.date_list_period\n", "kwargs": "self", - "line_number": 74 + "line_number": 344 } }, { @@ -3853,16 +3819,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", + "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", "kwargs": "self", - "line_number": 293 + "line_number": 311 } }, { @@ -3870,16 +3836,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", - "kwargs": "self", - "line_number": 340 + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 535 } }, { @@ -3887,16 +3853,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", "kwargs": "self", - "line_number": 83 + "line_number": 523 } }, { @@ -3904,16 +3870,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", "kwargs": "self", - "line_number": 103 + "line_number": 447 } }, { @@ -3921,16 +3887,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n return self._get_dated_items(datetime.date.today())\n", "kwargs": "self", - "line_number": 35 + "line_number": 560 } }, { @@ -3938,16 +3904,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_initial", - "docstring": "Return the initial data to use for forms on this view.", - "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_choices = {'%W': '1', '%U': '0'}\n try:\n week_start = week_choices[week_format]\n except KeyError:\n raise ValueError('Unknown week format %r. Choices are: %s' % (\n week_format,\n ', '.join(sorted(week_choices)),\n ))\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", "kwargs": "self", - "line_number": 17 + "line_number": 481 } }, { @@ -3955,16 +3921,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_login_url", - "docstring": "Override this method to override the login_url attribute.", - "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", "kwargs": "self", - "line_number": 17 + "line_number": 402 } }, { @@ -3989,16 +3955,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DateMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_month", - "docstring": "Return the month for which this view should display data.", - "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "name": "get_allow_future", + "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", "kwargs": "self", - "line_number": 80 + "line_number": 240 } }, { @@ -4006,16 +3972,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DateMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", "kwargs": "self", - "line_number": 73 + "line_number": 234 } }, { @@ -4023,16 +3989,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "DateMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "_get_next_day", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", - "kwargs": "self, date", - "line_number": 153 + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value)\n return value\n", + "kwargs": "self, value", + "line_number": 260 } }, { @@ -4040,16 +4006,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "DateMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_next_day", - "docstring": "Get the next valid day.", - "code": "def get_next_day(self, date):\n \"\"\"Get the next valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", "kwargs": "self, date", - "line_number": 145 + "line_number": 273 } }, { @@ -4057,16 +4023,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "_get_next_month", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", "kwargs": "self, date", - "line_number": 101 + "line_number": 161 } }, { @@ -4074,16 +4040,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_next_month", - "docstring": "Get the next valid month.", - "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", - "kwargs": "self, date", - "line_number": 93 + "name": "get_day", + "docstring": "Return the day for which this view should display data.", + "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "kwargs": "self", + "line_number": 132 } }, { @@ -4091,16 +4057,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_next_page", - "docstring": "", - "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = is_safe_url(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", "kwargs": "self", - "line_number": 127 + "line_number": 125 } }, { @@ -4108,16 +4074,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "DayMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "_get_next_week", + "name": "_get_next_day", "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", "kwargs": "self, date", - "line_number": 199 + "line_number": 153 } }, { @@ -4125,16 +4091,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "DayMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_next_week", - "docstring": "Get the next valid week.", - "code": "def get_next_week(self, date):\n \"\"\"Get the next valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"Get the next valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", "kwargs": "self, date", - "line_number": 191 + "line_number": 145 } }, { @@ -4142,16 +4108,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "DayMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "_get_next_year", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", "kwargs": "self, date", - "line_number": 52 + "line_number": 149 } }, { @@ -4159,16 +4125,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_next_year", - "docstring": "Get the next valid year.", - "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", "kwargs": "self, date", - "line_number": 44 + "line_number": 115 } }, { @@ -4176,16 +4142,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateDetailView", + "MonthMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_object", - "docstring": "Get the object this request displays.", - "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", - "kwargs": "self, queryset=None", - "line_number": 575 + "name": "get_month", + "docstring": "Return the month for which this view should display data.", + "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "kwargs": "self", + "line_number": 80 } }, { @@ -4193,16 +4159,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_object", - "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\n \"Generic detail view %s must be called with either an object \"\n \"pk or a slug in the URLconf.\" % self.__class__.__name__\n )\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "kwargs": "self, queryset=None", - "line_number": 20 + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "kwargs": "self", + "line_number": 73 } }, { @@ -4210,16 +4176,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset.", - "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", - "kwargs": "self", - "line_number": 50 + "name": "_get_next_month", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "kwargs": "self, date", + "line_number": 101 } }, { @@ -4227,16 +4193,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "MonthMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", - "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", - "kwargs": "self", - "line_number": 311 + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "kwargs": "self, date", + "line_number": 93 } }, { @@ -4244,16 +4210,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "kwargs": "self, queryset", - "line_number": 77 + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "kwargs": "self, date", + "line_number": 97 } }, { @@ -4261,16 +4227,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_paginate_orphans", - "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", - "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", - "kwargs": "self", - "line_number": 90 + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", + "kwargs": "self, date", + "line_number": 210 } }, { @@ -4278,16 +4244,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", - "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", - "line_number": 83 + "name": "_get_next_week", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "kwargs": "self, date", + "line_number": 199 } }, { @@ -4295,16 +4261,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_permission_denied_message", - "docstring": "Override this method to override the permission_denied_message attribute.", - "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", - "kwargs": "self", - "line_number": 29 + "name": "get_next_week", + "docstring": "Get the next valid week.", + "code": "def get_next_week(self, date):\n \"\"\"Get the next valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "kwargs": "self, date", + "line_number": 191 } }, { @@ -4312,16 +4278,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_permission_required", - "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", - "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required,)\n else:\n perms = self.permission_required\n return perms\n", - "kwargs": "self", - "line_number": 59 + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "kwargs": "self, date", + "line_number": 195 } }, { @@ -4329,16 +4295,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "WeekMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_prefix", - "docstring": "Return the prefix to use for forms.", - "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", + "name": "get_week", + "docstring": "Return the week for which this view should display data.", + "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", "kwargs": "self", - "line_number": 21 + "line_number": 178 } }, { @@ -4346,16 +4312,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "WeekMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_previous_day", - "docstring": "Get the previous valid day.", - "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", "kwargs": "self, date", - "line_number": 149 + "line_number": 214 } }, { @@ -4363,16 +4329,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "WeekMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_previous_month", - "docstring": "Get the previous valid month.", - "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", - "kwargs": "self, date", - "line_number": 97 + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "kwargs": "self", + "line_number": 171 } }, { @@ -4380,16 +4346,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "YearMixin", "django.views.generic.dates", "Django", "2.2" ], - "name": "get_previous_week", - "docstring": "Get the previous valid week.", - "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", "kwargs": "self, date", - "line_number": 195 + "line_number": 63 } }, { @@ -4402,11 +4368,11 @@ "Django", "2.2" ], - "name": "get_previous_year", - "docstring": "Get the previous valid year.", - "code": "def get_previous_year(self, date):\n \"\"\"Get the previous valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", + "name": "_get_next_year", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", "kwargs": "self, date", - "line_number": 48 + "line_number": 52 } }, { @@ -4414,16 +4380,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_queryset", - "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", - "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", - "kwargs": "self", - "line_number": 58 + "name": "get_next_year", + "docstring": "Get the next valid year.", + "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", + "kwargs": "self, date", + "line_number": 44 } }, { @@ -4431,16 +4397,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_queryset", - "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", - "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", - "kwargs": "self", - "line_number": 21 + "name": "get_previous_year", + "docstring": "Get the previous valid year.", + "code": "def get_previous_year(self, date):\n \"\"\"Get the previous valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", + "kwargs": "self, date", + "line_number": 48 } }, { @@ -4448,16 +4414,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "YearMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_redirect_field_name", - "docstring": "Override this method to override the redirect_field_name attribute.", - "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", "kwargs": "self", - "line_number": 35 + "line_number": 31 } }, { @@ -4465,16 +4431,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "2.2" ], - "name": "get_redirect_url", - "docstring": "Return the user-originating redirect URL if it's safe.", - "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = is_safe_url(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", "kwargs": "self", - "line_number": 67 + "line_number": 24 } }, { @@ -4482,16 +4448,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.2" ], - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", - "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", - "kwargs": "self, *args, **kwargs", - "line_number": 169 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 105 } }, { @@ -4504,11 +4470,11 @@ "Django", "2.2" ], - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", - "code": "def get_slug_field(self):\n \"\"\"Get the name of a slug field to be used to look up by slug.\"\"\"\n return self.slug_field\n", - "kwargs": "self", - "line_number": 78 + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 91 } }, { @@ -4516,16 +4482,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.2" ], - "name": "get_success_url", - "docstring": "", - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", - "kwargs": "self", - "line_number": 220 + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 82 } }, { @@ -4533,16 +4499,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.2" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", - "kwargs": "self", - "line_number": 110 + "name": "get_object", + "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\n \"Generic detail view %s must be called with either an object \"\n \"pk or a slug in the URLconf.\" % self.__class__.__name__\n )\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 20 } }, { @@ -4550,16 +4516,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.2" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", + "name": "get_queryset", + "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", "kwargs": "self", - "line_number": 49 + "line_number": 58 } }, { @@ -4567,16 +4533,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.2" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"Get the name of a slug field to be used to look up by slug.\"\"\"\n return self.slug_field\n", "kwargs": "self", - "line_number": 63 + "line_number": 78 } }, { @@ -4584,16 +4550,16 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.2" ], - "name": "get_success_url_allowed_hosts", - "docstring": "", - "code": "def get_success_url_allowed_hosts(self):\n return {self.request.get_host(), *self.success_url_allowed_hosts}\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response() is overridden. Return the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response() is overridden. Return the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif getattr(self, 'model', None) is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", "kwargs": "self", - "line_number": 34 + "line_number": 115 } }, { @@ -4601,16 +4567,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseCreateView", + "django.views.generic.edit", "Django", "2.2" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n elif not names:\n raise ImproperlyConfigured(\n \"%(cls)s requires either a 'template_name' attribute \"\n \"or a get_queryset() method that returns a QuerySet.\" % {\n 'cls': self.__class__.__name__,\n }\n )\n return names\n", - "kwargs": "self", - "line_number": 165 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 166 } }, { @@ -4618,16 +4584,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseCreateView", + "django.views.generic.edit", "Django", "2.2" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response() is overridden. Return the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response() is overridden. Return the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif getattr(self, 'model', None) is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", - "kwargs": "self", - "line_number": 115 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 170 } }, { @@ -4635,16 +4601,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "2.2" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "kwargs": "self", - "line_number": 140 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 188 } }, { @@ -4652,16 +4618,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "BaseUpdateView", + "django.views.generic.edit", "Django", "2.2" ], - "name": "get_test_func", - "docstring": "Override this method to use a different test_func method.", - "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", - "kwargs": "self", - "line_number": 99 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 192 } }, { @@ -4669,16 +4635,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "get_user", - "docstring": "", - "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", - "kwargs": "self, uidb64", - "line_number": 284 + "name": "delete", + "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 206 } }, { @@ -4686,16 +4652,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "get_week", - "docstring": "Return the week for which this view should display data.", - "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", "kwargs": "self", - "line_number": 178 + "line_number": 220 } }, { @@ -4703,16 +4669,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "kwargs": "self, date", - "line_number": 214 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 217 } }, { @@ -4720,16 +4686,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", - "kwargs": "self", - "line_number": 171 + "name": "form_invalid", + "docstring": "If the form is invalid, render the invalid form.", + "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 59 } }, { @@ -4737,16 +4703,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "get_year", - "docstring": "Return the year for which this view should display data.", - "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", - "kwargs": "self", - "line_number": 31 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 55 } }, { @@ -4754,16 +4720,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", - "kwargs": "self", - "line_number": 24 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", + "kwargs": "self, **kwargs", + "line_number": 63 } }, { @@ -4771,16 +4737,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "handle_no_permission", - "docstring": "", - "code": "def handle_no_permission(self):\n if self.raise_exception or self.request.user.is_authenticated:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", - "kwargs": "self", - "line_number": 41 + "name": "get_form", + "docstring": "Return an instance of the form to be used in this view.", + "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class=None", + "line_number": 29 } }, { @@ -4788,16 +4754,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "has_permission", - "docstring": "Override this method to customize the way permissions are checked.", - "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", "kwargs": "self", - "line_number": 75 + "line_number": 25 } }, { @@ -4805,16 +4771,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "head", - "docstring": "", - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 201 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "kwargs": "self", + "line_number": 35 } }, { @@ -4822,16 +4788,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "http_method_not_allowed", - "docstring": "", - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 99 + "name": "get_initial", + "docstring": "Return the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", + "kwargs": "self", + "line_number": 17 } }, { @@ -4839,16 +4805,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", - "kwargs": "self, **kwargs", - "line_number": 38 + "name": "get_prefix", + "docstring": "Return the prefix to use for forms.", + "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", + "kwargs": "self", + "line_number": 21 } }, { @@ -4856,16 +4822,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value)\n return value\n", - "kwargs": "self, value", - "line_number": 260 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", + "kwargs": "self", + "line_number": 49 } }, { @@ -4873,16 +4839,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "kwargs": "self, date", - "line_number": 273 + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 123 } }, { @@ -4890,16 +4856,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 106 + "name": "get_form_class", + "docstring": "Return the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif getattr(self, 'object', None) is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "kwargs": "self", + "line_number": 74 } }, { @@ -4907,16 +4873,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 207 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 103 } }, { @@ -4924,16 +4890,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.2" ], - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", - "kwargs": "self, queryset, page_size", - "line_number": 54 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 110 } }, { @@ -4941,16 +4907,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.2" ], - "name": "patch", - "docstring": "", - "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 216 + "line_number": 131 } }, { @@ -4958,16 +4924,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.2" ], "name": "post", - "docstring": "Logout may be done via POST.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handle POST requests: instantiate a form instance with the passed\n POST variables and then check if it's valid.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 123 + "line_number": 135 } }, { @@ -4975,16 +4941,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", + "ProcessFormView", "django.views.generic.edit", "Django", "2.2" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 192 + "name": "put", + "docstring": "", + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 148 } }, { @@ -4992,16 +4958,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "BaseListView", + "django.views.generic.list", "Django", "2.2" ], - "name": "post", + "name": "get", "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = not self.object_list\n if is_empty:\n raise Http404(_(\"Empty list and '%(class_name)s.allow_empty' is False.\") % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 217 + "line_number": 141 } }, { @@ -5009,16 +4975,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 170 + "name": "get_allow_empty", + "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 97 } }, { @@ -5026,16 +4992,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 204 + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, *, object_list=None, **kwargs", + "line_number": 113 } }, { @@ -5043,16 +5009,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handle POST requests: instantiate a form instance with the passed\n POST variables and then check if it's valid.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 135 + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 104 } }, { @@ -5060,16 +5026,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "put", - "docstring": "", - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 213 + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset.", + "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", + "kwargs": "self", + "line_number": 50 } }, { @@ -5077,16 +5043,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "put", - "docstring": "", - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 148 + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 77 } }, { @@ -5094,16 +5060,50 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "render_to_response", - "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", - "kwargs": "self, context, **response_kwargs", - "line_number": 124 + "name": "get_paginate_orphans", + "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", + "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "kwargs": "self", + "line_number": 90 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "MultipleObjectMixin", + "django.views.generic.list", + "Django", + "2.2" + ], + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", + "line_number": 83 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "MultipleObjectMixin", + "django.views.generic.list", + "Django", + "2.2" + ], + "name": "get_queryset", + "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", + "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "kwargs": "self", + "line_number": 21 } }, { @@ -5111,16 +5111,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "setup", - "docstring": "Initialize attributes shared by all view methods.", - "code": "def setup(self, request, *args, **kwargs):\n \"\"\"Initialize attributes shared by all view methods.\"\"\"\n self.request = request\n self.args = args\n self.kwargs = kwargs\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 83 + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_(\"Page is not 'last', nor can it be converted to an int.\"))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 54 } }, { @@ -5128,16 +5128,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.2" ], - "name": "test_func", - "docstring": "", - "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n elif not names:\n raise ImproperlyConfigured(\n \"%(cls)s requires either a 'template_name' attribute \"\n \"or a get_queryset() method that returns a QuerySet.\" % {\n 'cls': self.__class__.__name__,\n }\n )\n return names\n", "kwargs": "self", - "line_number": 94 + "line_number": 165 } }, { @@ -5145,14 +5145,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], "child": [ - "DetailView", - "django.views.generic.detail", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], @@ -5164,14 +5164,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], @@ -5183,14 +5183,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "2.2" ], @@ -5202,14 +5202,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "2.2" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "LoginView", + "django.contrib.auth.views", "Django", "2.2" ], @@ -5221,18 +5221,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "FormView", + "django.views.generic.edit", "Django", "2.2" ], "child": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "LoginView", + "django.contrib.auth.views", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5240,13 +5240,13 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", + "SuccessURLAllowedHostsMixin", "django.contrib.auth.views", "Django", "2.2" ], "child": [ - "PasswordChangeDoneView", + "LogoutView", "django.contrib.auth.views", "Django", "2.2" @@ -5259,18 +5259,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "TemplateView", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "PasswordResetView", + "LogoutView", "django.contrib.auth.views", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5278,14 +5278,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.2" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.2" ], @@ -5297,18 +5297,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "TemplateView", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5316,14 +5316,14 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.2" ], "child": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.2" ], @@ -5335,18 +5335,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "2.2" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5354,14 +5354,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.2" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "2.2" ], @@ -5373,18 +5373,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5392,14 +5392,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.2" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.2" ], @@ -5411,18 +5411,18 @@ "pk": null, "fields": { "parent": [ - "DeletionMixin", + "FormView", "django.views.generic.edit", "Django", "2.2" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5430,14 +5430,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.2" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "2.2" ], @@ -5449,18 +5449,18 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5468,14 +5468,14 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "2.2" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.2" ], @@ -5487,18 +5487,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", + "FormView", "django.views.generic.edit", "Django", "2.2" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5506,14 +5506,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "2.2" ], @@ -5525,13 +5525,13 @@ "pk": null, "fields": { "parent": [ - "View", + "TemplateResponseMixin", "django.views.generic.base", "Django", "2.2" ], "child": [ - "RedirectView", + "TemplateView", "django.views.generic.base", "Django", "2.2" @@ -5544,18 +5544,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", + "ContextMixin", "django.views.generic.base", "Django", "2.2" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "TemplateView", + "django.views.generic.base", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5563,18 +5563,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "View", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "TemplateView", + "django.views.generic.base", "Django", "2.2" ], - "order": 0 + "order": 2 } }, { @@ -5582,14 +5582,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", + "MultipleObjectTemplateResponseMixin", "django.views.generic.list", "Django", "2.2" ], "child": [ - "BaseListView", - "django.views.generic.list", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "2.2" ], @@ -5601,18 +5601,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "BaseDateListView", + "ArchiveIndexView", "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5620,14 +5620,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "FormView", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "2.2" ], @@ -5639,14 +5639,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "2.2" ], @@ -5658,18 +5658,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "YearArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5677,18 +5677,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "WeekArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 2 } }, { @@ -5696,18 +5696,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DateMixin", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "TodayArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 3 } }, { @@ -5715,18 +5715,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.2" ], "child": [ - "MonthArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 4 } }, { @@ -5734,13 +5734,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", + "MultipleObjectMixin", "django.views.generic.list", "Django", "2.2" ], "child": [ - "DayArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "2.2" @@ -5753,18 +5753,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DateMixin", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "ArchiveIndexView", + "BaseDateListView", "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5772,18 +5772,18 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "View", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 2 } }, { @@ -5791,14 +5791,14 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], @@ -5810,18 +5810,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MonthMixin", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5829,18 +5829,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DayMixin", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "TemplateView", - "django.views.generic.base", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 2 } }, { @@ -5848,18 +5848,18 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "2.2" ], "child": [ - "BaseTodayArchiveView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 3 } }, { @@ -5867,14 +5867,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.2" ], @@ -5886,18 +5886,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5905,18 +5905,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 2 } }, { @@ -5924,14 +5924,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], @@ -5943,13 +5943,13 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", + "YearMixin", "django.views.generic.dates", "Django", "2.2" ], "child": [ - "BaseArchiveIndexView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "2.2" @@ -5962,18 +5962,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "WeekMixin", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -5981,18 +5981,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 2 } }, { @@ -6000,14 +6000,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.2" ], @@ -6019,18 +6019,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "CreateView", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "order": 0 + "order": 1 } }, { @@ -6038,18 +6038,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.2" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "DateDetailView", + "django.views.generic.dates", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6057,14 +6057,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "DateDetailView", + "django.views.generic.dates", "Django", "2.2" ], @@ -6076,18 +6076,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.2" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6095,14 +6095,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], @@ -6114,18 +6114,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.2" ], "child": [ - "TemplateView", - "django.views.generic.base", + "MonthArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6133,14 +6133,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "2.2" ], "child": [ - "BaseListView", - "django.views.generic.list", + "MonthArchiveView", + "django.views.generic.dates", "Django", "2.2" ], @@ -6152,18 +6152,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.2" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "TodayArchiveView", + "django.views.generic.dates", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6171,13 +6171,13 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", + "BaseTodayArchiveView", "django.views.generic.dates", "Django", "2.2" ], "child": [ - "BaseMonthArchiveView", + "TodayArchiveView", "django.views.generic.dates", "Django", "2.2" @@ -6190,18 +6190,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.2" ], "child": [ - "BaseDayArchiveView", + "WeekArchiveView", "django.views.generic.dates", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6209,13 +6209,13 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "2.2" ], "child": [ - "BaseDateDetailView", + "WeekArchiveView", "django.views.generic.dates", "Django", "2.2" @@ -6228,18 +6228,18 @@ "pk": null, "fields": { "parent": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.2" ], "child": [ - "WeekArchiveView", + "YearArchiveView", "django.views.generic.dates", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6247,13 +6247,13 @@ "pk": null, "fields": { "parent": [ - "BaseMonthArchiveView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "2.2" ], "child": [ - "MonthArchiveView", + "YearArchiveView", "django.views.generic.dates", "Django", "2.2" @@ -6266,18 +6266,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.2" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6285,14 +6285,14 @@ "pk": null, "fields": { "parent": [ - "WeekMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.2" ], @@ -6304,18 +6304,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.2" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6323,14 +6323,14 @@ "pk": null, "fields": { "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "2.2" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "2.2" ], @@ -6342,18 +6342,18 @@ "pk": null, "fields": { "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6361,18 +6361,18 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6380,18 +6380,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.2" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6399,14 +6399,14 @@ "pk": null, "fields": { "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.2" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "2.2" ], @@ -6418,18 +6418,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DeletionMixin", + "django.views.generic.edit", "Django", "2.2" ], "child": [ - "ModelFormMixin", + "BaseDeleteView", "django.views.generic.edit", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6456,18 +6456,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "FormMixin", + "django.views.generic.edit", "Django", "2.2" ], "child": [ - "DetailView", - "django.views.generic.detail", + "BaseFormView", + "django.views.generic.edit", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6481,7 +6481,7 @@ "2.2" ], "child": [ - "BaseUpdateView", + "BaseFormView", "django.views.generic.edit", "Django", "2.2" @@ -6494,18 +6494,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", + "ModelFormMixin", "django.views.generic.edit", "Django", "2.2" ], "child": [ - "BaseFormView", + "BaseUpdateView", "django.views.generic.edit", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6513,14 +6513,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.2" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "BaseUpdateView", + "django.views.generic.edit", "Django", "2.2" ], @@ -6532,18 +6532,18 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.2" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "CreateView", + "django.views.generic.edit", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6551,14 +6551,14 @@ "pk": null, "fields": { "parent": [ - "FormView", + "BaseCreateView", "django.views.generic.edit", "Django", "2.2" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "CreateView", + "django.views.generic.edit", "Django", "2.2" ], @@ -6570,18 +6570,18 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.2" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "DeleteView", + "django.views.generic.edit", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6589,14 +6589,14 @@ "pk": null, "fields": { "parent": [ - "FormView", + "BaseDeleteView", "django.views.generic.edit", "Django", "2.2" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "DeleteView", + "django.views.generic.edit", "Django", "2.2" ], @@ -6608,18 +6608,18 @@ "pk": null, "fields": { "parent": [ - "BaseUpdateView", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "UpdateView", + "FormMixin", "django.views.generic.edit", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6627,8 +6627,8 @@ "pk": null, "fields": { "parent": [ - "BaseFormView", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.2" ], @@ -6638,7 +6638,7 @@ "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6646,13 +6646,13 @@ "pk": null, "fields": { "parent": [ - "BaseDeleteView", + "BaseFormView", "django.views.generic.edit", "Django", "2.2" ], "child": [ - "DeleteView", + "FormView", "django.views.generic.edit", "Django", "2.2" @@ -6665,18 +6665,18 @@ "pk": null, "fields": { "parent": [ - "BaseCreateView", + "FormMixin", "django.views.generic.edit", "Django", "2.2" ], "child": [ - "CreateView", + "ModelFormMixin", "django.views.generic.edit", "Django", "2.2" ], - "order": 1 + "order": 0 } }, { @@ -6684,14 +6684,14 @@ "pk": null, "fields": { "parent": [ - "BaseListView", - "django.views.generic.list", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "2.2" ], "child": [ - "ListView", - "django.views.generic.list", + "ModelFormMixin", + "django.views.generic.edit", "Django", "2.2" ], @@ -6703,18 +6703,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "2.2" ], - "order": 2 + "order": 0 } }, { @@ -6722,18 +6722,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "2.2" ], "child": [ - "TemplateView", - "django.views.generic.base", + "UpdateView", + "django.views.generic.edit", "Django", "2.2" ], - "order": 2 + "order": 0 } }, { @@ -6741,18 +6741,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "2.2" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "2.2" ], - "order": 2 + "order": 1 } }, { @@ -6760,18 +6760,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "2.2" ], - "order": 2 + "order": 0 } }, { @@ -6785,12 +6785,12 @@ "2.2" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "2.2" ], - "order": 2 + "order": 1 } }, { @@ -6798,18 +6798,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.2" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "2.2" ], - "order": 2 + "order": 0 } }, { @@ -6817,18 +6817,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "2.2" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "2.2" ], - "order": 3 + "order": 1 } }, { @@ -6836,18 +6836,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "2.2" ], - "order": 3 + "order": 0 } }, { @@ -6855,18 +6855,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "2.2" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "2.2" ], - "order": 4 + "order": 0 } } ] diff --git a/cbv/fixtures/3.0.json b/cbv/fixtures/3.0.json index 591af656..2a8e2ce8 100644 --- a/cbv/fixtures/3.0.json +++ b/cbv/fixtures/3.0.json @@ -16,9 +16,9 @@ "Django", "3.0" ], - "name": "django.views.generic", + "name": "django.contrib.auth.mixins", "docstring": "", - "filename": "/django/views/generic/__init__.py" + "filename": "/django/contrib/auth/mixins.py" } }, { @@ -28,9 +28,9 @@ "Django", "3.0" ], - "name": "django.views.generic.base", + "name": "django.contrib.auth.views", "docstring": "", - "filename": "/django/views/generic/base.py" + "filename": "/django/contrib/auth/views.py" } }, { @@ -40,9 +40,9 @@ "Django", "3.0" ], - "name": "django.views.generic.dates", + "name": "django.views.generic", "docstring": "", - "filename": "/django/views/generic/dates.py" + "filename": "/django/views/generic/__init__.py" } }, { @@ -52,9 +52,9 @@ "Django", "3.0" ], - "name": "django.views.generic.detail", + "name": "django.views.generic.base", "docstring": "", - "filename": "/django/views/generic/detail.py" + "filename": "/django/views/generic/base.py" } }, { @@ -64,9 +64,9 @@ "Django", "3.0" ], - "name": "django.views.generic.edit", + "name": "django.views.generic.dates", "docstring": "", - "filename": "/django/views/generic/edit.py" + "filename": "/django/views/generic/dates.py" } }, { @@ -76,9 +76,9 @@ "Django", "3.0" ], - "name": "django.views.generic.list", + "name": "django.views.generic.detail", "docstring": "", - "filename": "/django/views/generic/list.py" + "filename": "/django/views/generic/detail.py" } }, { @@ -88,9 +88,9 @@ "Django", "3.0" ], - "name": "django.contrib.auth.views", + "name": "django.views.generic.edit", "docstring": "", - "filename": "/django/contrib/auth/views.py" + "filename": "/django/views/generic/edit.py" } }, { @@ -100,9 +100,9 @@ "Django", "3.0" ], - "name": "django.contrib.auth.mixins", + "name": "django.views.generic.list", "docstring": "", - "filename": "/django/contrib/auth/mixins.py" + "filename": "/django/views/generic/list.py" } }, { @@ -1010,13 +1010,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], - "name": "allow_empty", - "value": "False", + "name": "login_url", + "value": "None", "line_number": -1 } }, @@ -1025,13 +1025,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], - "name": "allow_empty", - "value": "True", + "name": "permission_denied_message", + "value": "''", "line_number": -1 } }, @@ -1040,12 +1040,12 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], - "name": "allow_future", + "name": "raise_exception", "value": "False", "line_number": -1 } @@ -1055,13 +1055,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], - "name": "args", - "value": "", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1070,12 +1070,12 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], - "name": "authentication_form", + "name": "permission_required", "value": "None", "line_number": -1 } @@ -1085,13 +1085,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "__cause__", - "value": "", + "name": "authentication_form", + "value": "None", "line_number": -1 } }, @@ -1100,14 +1100,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "content_type", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 172 } }, { @@ -1115,13 +1115,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "__context__", - "value": "", + "name": "redirect_authenticated_user", + "value": "False", "line_number": -1 } }, @@ -1130,13 +1130,13 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "context_object_name", - "value": "'latest'", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1145,13 +1145,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "LoginView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "context_object_name", - "value": "None", + "name": "template_name", + "value": "'registration/login.html'", "line_number": -1 } }, @@ -1160,12 +1160,12 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "LogoutView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "context_object_name", + "name": "next_page", "value": "None", "line_number": -1 } @@ -1175,13 +1175,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "date_field", - "value": "None", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1190,13 +1190,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "date_list_period", - "value": "'month'", + "name": "template_name", + "value": "'registration/logged_out.html'", "line_number": -1 } }, @@ -1205,13 +1205,13 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "date_list_period", - "value": "'day'", + "name": "template_name", + "value": "'registration/password_change_done.html'", "line_number": -1 } }, @@ -1220,13 +1220,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "date_list_period", - "value": "'year'", + "name": "title", + "value": "gettext_lazy('Password change successful')", "line_number": -1 } }, @@ -1235,14 +1235,14 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "day", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 372 } }, { @@ -1250,13 +1250,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "day_format", - "value": "'%d'", + "name": "success_url", + "value": "reverse_lazy('password_change_done')", "line_number": -1 } }, @@ -1265,13 +1265,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "__delattr__", - "value": "", + "name": "template_name", + "value": "'registration/password_change_form.html'", "line_number": -1 } }, @@ -1280,13 +1280,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordChangeView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "email_template_name", - "value": "'registration/password_reset_email.html'", + "name": "title", + "value": "gettext_lazy('Password change')", "line_number": -1 } }, @@ -1295,8 +1295,8 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", - "django.views.generic.base", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.0" ], @@ -1310,13 +1310,13 @@ "pk": null, "fields": { "klass": [ - "PasswordContextMixin", + "PasswordResetCompleteView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "extra_context", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_complete.html'", "line_number": -1 } }, @@ -1325,13 +1325,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetCompleteView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "extra_email_context", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password reset complete')", "line_number": -1 } }, @@ -1340,14 +1340,14 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "fields", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 328 } }, { @@ -1355,14 +1355,14 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "form_class", - "value": "", - "line_number": 372 + "name": "post_reset_login", + "value": "False", + "line_number": -1 } }, { @@ -1375,9 +1375,9 @@ "Django", "3.0" ], - "name": "form_class", - "value": "", - "line_number": 328 + "name": "post_reset_login_backend", + "value": "None", + "line_number": -1 } }, { @@ -1385,14 +1385,14 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "form_class", - "value": "", - "line_number": 172 + "name": "reset_url_token", + "value": "'set-password'", + "line_number": -1 } }, { @@ -1400,14 +1400,14 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "form_class", - "value": "", - "line_number": 250 + "name": "success_url", + "value": "reverse_lazy('password_reset_complete')", + "line_number": -1 } }, { @@ -1415,13 +1415,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "form_class", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_confirm.html'", "line_number": -1 } }, @@ -1430,13 +1430,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "from_email", - "value": "None", + "name": "title", + "value": "gettext_lazy('Enter new password')", "line_number": -1 } }, @@ -1445,13 +1445,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "__getattribute__", - "value": "", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1460,13 +1460,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetDoneView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "html_email_template_name", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_done.html'", "line_number": -1 } }, @@ -1475,13 +1475,13 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "http_method_names", - "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "name": "title", + "value": "gettext_lazy('Password reset sent')", "line_number": -1 } }, @@ -1490,13 +1490,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "__init__", - "value": "", + "name": "email_template_name", + "value": "'registration/password_reset_email.html'", "line_number": -1 } }, @@ -1505,13 +1505,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "initial", - "value": "{}", + "name": "extra_email_context", + "value": "None", "line_number": -1 } }, @@ -1520,14 +1520,14 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "login_url", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 250 } }, { @@ -1535,13 +1535,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "make_object_list", - "value": "False", + "name": "from_email", + "value": "None", "line_number": -1 } }, @@ -1550,12 +1550,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "model", + "name": "html_email_template_name", "value": "None", "line_number": -1 } @@ -1565,13 +1565,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "model", - "value": "None", + "name": "subject_template_name", + "value": "'registration/password_reset_subject.txt'", "line_number": -1 } }, @@ -1580,13 +1580,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "month", - "value": "None", + "name": "success_url", + "value": "reverse_lazy('password_reset_done')", "line_number": -1 } }, @@ -1595,13 +1595,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "month_format", - "value": "'%b'", + "name": "template_name", + "value": "'registration/password_reset_form.html'", "line_number": -1 } }, @@ -1610,13 +1610,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", + "PasswordResetView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "next_page", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password reset')", "line_number": -1 } }, @@ -1625,13 +1625,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "ordering", - "value": "None", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1640,13 +1640,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "page_kwarg", - "value": "'page'", + "name": "success_url_allowed_hosts", + "value": "set()", "line_number": -1 } }, @@ -1655,13 +1655,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "paginate_by", - "value": "None", + "name": "args", + "value": "", "line_number": -1 } }, @@ -1670,13 +1670,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "paginate_orphans", - "value": "0", + "name": "__cause__", + "value": "", "line_number": -1 } }, @@ -1685,14 +1685,14 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "paginator_class", - "value": "", - "line_number": 28 + "name": "__context__", + "value": "", + "line_number": -1 } }, { @@ -1700,13 +1700,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "pattern_name", - "value": "None", + "name": "__delattr__", + "value": "", "line_number": -1 } }, @@ -1715,13 +1715,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "permanent", - "value": "False", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -1730,13 +1730,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "permission_denied_message", - "value": "''", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -1745,13 +1745,13 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "permission_required", - "value": "None", + "name": "__reduce__", + "value": "", "line_number": -1 } }, @@ -1760,13 +1760,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "pk_url_kwarg", - "value": "'pk'", + "name": "__repr__", + "value": "", "line_number": -1 } }, @@ -1775,13 +1775,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "post_reset_login", - "value": "False", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -1790,13 +1790,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "post_reset_login_backend", - "value": "None", + "name": "__setstate__", + "value": "", "line_number": -1 } }, @@ -1805,13 +1805,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "prefix", - "value": "None", + "name": "__str__", + "value": "", "line_number": -1 } }, @@ -1820,13 +1820,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "query_pk_and_slug", - "value": "False", + "name": "__suppress_context__", + "value": "", "line_number": -1 } }, @@ -1835,13 +1835,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "queryset", - "value": "None", + "name": "__traceback__", + "value": "", "line_number": -1 } }, @@ -1850,13 +1850,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "3.0" ], - "name": "queryset", - "value": "None", + "name": "with_traceback", + "value": "", "line_number": -1 } }, @@ -1865,13 +1865,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", + "ContextMixin", "django.views.generic.base", "Django", "3.0" ], - "name": "query_string", - "value": "False", + "name": "extra_context", + "value": "None", "line_number": -1 } }, @@ -1880,13 +1880,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "RedirectView", + "django.views.generic.base", "Django", "3.0" ], - "name": "raise_exception", - "value": "False", + "name": "pattern_name", + "value": "None", "line_number": -1 } }, @@ -1895,12 +1895,12 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "3.0" ], - "name": "redirect_authenticated_user", + "name": "permanent", "value": "False", "line_number": -1 } @@ -1910,13 +1910,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "3.0" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "query_string", + "value": "False", "line_number": -1 } }, @@ -1925,13 +1925,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "3.0" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "url", + "value": "None", "line_number": -1 } }, @@ -1940,13 +1940,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.0" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "content_type", + "value": "None", "line_number": -1 } }, @@ -1955,14 +1955,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.0" ], - "name": "__reduce__", - "value": "", - "line_number": -1 + "name": "response_class", + "value": "", + "line_number": 138 } }, { @@ -1970,13 +1970,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.0" ], - "name": "__repr__", - "value": "", + "name": "template_engine", + "value": "None", "line_number": -1 } }, @@ -1985,13 +1985,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.0" ], - "name": "reset_url_token", - "value": "'set-password'", + "name": "template_name", + "value": "None", "line_number": -1 } }, @@ -2000,14 +2000,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", + "View", "django.views.generic.base", "Django", "3.0" ], - "name": "response_class", - "value": "", - "line_number": 138 + "name": "http_method_names", + "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "line_number": -1 } }, { @@ -2015,13 +2015,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "__setattr__", - "value": "", + "name": "template_name_suffix", + "value": "'_archive'", "line_number": -1 } }, @@ -2030,13 +2030,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "__setstate__", - "value": "", + "name": "context_object_name", + "value": "'latest'", "line_number": -1 } }, @@ -2045,13 +2045,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "slug_field", - "value": "'slug'", + "name": "allow_empty", + "value": "False", "line_number": -1 } }, @@ -2060,13 +2060,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "slug_url_kwarg", - "value": "'slug'", + "name": "date_list_period", + "value": "'year'", "line_number": -1 } }, @@ -2075,13 +2075,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "__str__", - "value": "", + "name": "date_list_period", + "value": "'day'", "line_number": -1 } }, @@ -2090,13 +2090,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "subject_template_name", - "value": "'registration/password_reset_subject.txt'", + "name": "date_list_period", + "value": "'month'", "line_number": -1 } }, @@ -2105,13 +2105,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "success_url", - "value": "reverse_lazy('password_change_done')", + "name": "make_object_list", + "value": "False", "line_number": -1 } }, @@ -2120,13 +2120,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_done')", + "name": "allow_future", + "value": "False", "line_number": -1 } }, @@ -2135,13 +2135,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_complete')", + "name": "date_field", + "value": "None", "line_number": -1 } }, @@ -2150,13 +2150,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "success_url", - "value": "None", + "name": "uses_datetime_field", + "value": "", "line_number": -1 } }, @@ -2165,13 +2165,13 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "DayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "success_url", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2180,13 +2180,13 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "success_url_allowed_hosts", - "value": "set()", + "name": "day", + "value": "None", "line_number": -1 } }, @@ -2195,13 +2195,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "DayMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "__suppress_context__", - "value": "", + "name": "day_format", + "value": "'%d'", "line_number": -1 } }, @@ -2210,13 +2210,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MonthArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "template_engine", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_month'", "line_number": -1 } }, @@ -2225,13 +2225,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "template_name", - "value": "'registration/logged_out.html'", + "name": "month", + "value": "None", "line_number": -1 } }, @@ -2240,13 +2240,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "template_name", - "value": "'registration/password_reset_form.html'", + "name": "month_format", + "value": "'%b'", "line_number": -1 } }, @@ -2255,13 +2255,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "TodayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "template_name", - "value": "'registration/password_reset_confirm.html'", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2270,13 +2270,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "template_name", - "value": "'registration/password_change_form.html'", + "name": "template_name_suffix", + "value": "'_archive_week'", "line_number": -1 } }, @@ -2285,13 +2285,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "template_name", - "value": "'registration/password_reset_complete.html'", + "name": "week", + "value": "None", "line_number": -1 } }, @@ -2300,13 +2300,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "template_name", - "value": "'registration/password_reset_done.html'", + "name": "week_format", + "value": "'%U'", "line_number": -1 } }, @@ -2315,13 +2315,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "YearArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "template_name", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_year'", "line_number": -1 } }, @@ -2330,13 +2330,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "template_name", - "value": "'registration/password_change_done.html'", + "name": "year", + "value": "None", "line_number": -1 } }, @@ -2345,13 +2345,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "template_name", - "value": "'registration/login.html'", + "name": "year_format", + "value": "'%Y'", "line_number": -1 } }, @@ -2360,12 +2360,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "3.0" ], - "name": "template_name_field", + "name": "context_object_name", "value": "None", "line_number": -1 } @@ -2375,13 +2375,13 @@ "pk": null, "fields": { "klass": [ - "CreateView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.0" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2390,13 +2390,13 @@ "pk": null, "fields": { "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.0" ], - "name": "template_name_suffix", - "value": "'_archive_month'", + "name": "pk_url_kwarg", + "value": "'pk'", "line_number": -1 } }, @@ -2405,13 +2405,13 @@ "pk": null, "fields": { "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.0" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "query_pk_and_slug", + "value": "False", "line_number": -1 } }, @@ -2420,13 +2420,13 @@ "pk": null, "fields": { "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.0" ], - "name": "template_name_suffix", - "value": "'_archive_week'", + "name": "queryset", + "value": "None", "line_number": -1 } }, @@ -2435,13 +2435,13 @@ "pk": null, "fields": { "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.0" ], - "name": "template_name_suffix", - "value": "'_archive_year'", + "name": "slug_field", + "value": "'slug'", "line_number": -1 } }, @@ -2450,13 +2450,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.0" ], - "name": "template_name_suffix", - "value": "'_list'", + "name": "slug_url_kwarg", + "value": "'slug'", "line_number": -1 } }, @@ -2465,13 +2465,13 @@ "pk": null, "fields": { "klass": [ - "DeleteView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.0" ], - "name": "template_name_suffix", - "value": "'_confirm_delete'", + "name": "template_name_field", + "value": "None", "line_number": -1 } }, @@ -2480,13 +2480,13 @@ "pk": null, "fields": { "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.0" ], "name": "template_name_suffix", - "value": "'_archive'", + "value": "'_detail'", "line_number": -1 } }, @@ -2495,13 +2495,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "CreateView", + "django.views.generic.edit", "Django", "3.0" ], "name": "template_name_suffix", - "value": "'_detail'", + "value": "'_form'", "line_number": -1 } }, @@ -2510,13 +2510,13 @@ "pk": null, "fields": { "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "3.0" ], "name": "template_name_suffix", - "value": "'_archive_day'", + "value": "'_confirm_delete'", "line_number": -1 } }, @@ -2525,13 +2525,13 @@ "pk": null, "fields": { "klass": [ - "UpdateView", + "DeletionMixin", "django.views.generic.edit", "Django", "3.0" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2540,13 +2540,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "title", - "value": "gettext_lazy('Password reset')", + "name": "form_class", + "value": "None", "line_number": -1 } }, @@ -2555,13 +2555,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "title", - "value": "gettext_lazy('Enter new password')", + "name": "initial", + "value": "{}", "line_number": -1 } }, @@ -2570,13 +2570,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "title", - "value": "gettext_lazy('Password change')", + "name": "prefix", + "value": "None", "line_number": -1 } }, @@ -2585,13 +2585,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "title", - "value": "gettext_lazy('Password reset complete')", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2600,13 +2600,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "title", - "value": "gettext_lazy('Password reset sent')", + "name": "fields", + "value": "None", "line_number": -1 } }, @@ -2615,13 +2615,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "UpdateView", + "django.views.generic.edit", "Django", "3.0" ], - "name": "title", - "value": "gettext_lazy('Password change successful')", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -2630,13 +2630,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "token_generator", - "value": "", + "name": "allow_empty", + "value": "True", "line_number": -1 } }, @@ -2645,13 +2645,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "token_generator", - "value": "", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -2660,13 +2660,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "__traceback__", - "value": "", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2675,12 +2675,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "url", + "name": "ordering", "value": "None", "line_number": -1 } @@ -2690,13 +2690,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "uses_datetime_field", - "value": "", + "name": "page_kwarg", + "value": "'page'", "line_number": -1 } }, @@ -2705,12 +2705,12 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "week", + "name": "paginate_by", "value": "None", "line_number": -1 } @@ -2720,13 +2720,13 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "week_format", - "value": "'%U'", + "name": "paginate_orphans", + "value": "0", "line_number": -1 } }, @@ -2735,14 +2735,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "with_traceback", - "value": "", - "line_number": -1 + "name": "paginator_class", + "value": "", + "line_number": 28 } }, { @@ -2750,12 +2750,12 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "year", + "name": "queryset", "value": "None", "line_number": -1 } @@ -2765,13 +2765,13 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "year_format", - "value": "'%Y'", + "name": "template_name_suffix", + "value": "'_list'", "line_number": -1 } }, @@ -2780,16 +2780,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], - "name": "_allowed_methods", - "docstring": "", - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "name": "get_login_url", + "docstring": "Override this method to override the login_url attribute.", + "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", "kwargs": "self", - "line_number": 113 + "line_number": 17 } }, { @@ -2797,16 +2797,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], - "name": "as_view", - "docstring": "Main entry point for a request-response process.", - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.setup(request, *args, **kwargs)\n if not hasattr(self, 'request'):\n raise AttributeError(\n \"%s instance has no 'request' attribute. Did you override \"\n \"setup() and forget to call super()?\" % cls.__name__\n )\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "kwargs": "cls, **initkwargs", - "line_number": 48 + "name": "get_permission_denied_message", + "docstring": "Override this method to override the permission_denied_message attribute.", + "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "kwargs": "self", + "line_number": 29 } }, { @@ -2814,16 +2814,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], - "name": "delete", - "docstring": "", - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 210 + "name": "get_redirect_field_name", + "docstring": "Override this method to override the redirect_field_name attribute.", + "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", + "kwargs": "self", + "line_number": 35 } }, { @@ -2831,16 +2831,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], - "name": "delete", - "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 206 + "name": "handle_no_permission", + "docstring": "", + "code": "def handle_no_permission(self):\n if self.raise_exception or self.request.user.is_authenticated:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "kwargs": "self", + "line_number": 41 } }, { @@ -2865,16 +2865,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", + "PermissionRequiredMixin", "django.contrib.auth.mixins", "Django", "3.0" ], "name": "dispatch", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 105 + "line_number": 82 } }, { @@ -2882,16 +2882,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 116 + "name": "get_permission_required", + "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", + "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required,)\n else:\n perms = self.permission_required\n return perms\n", + "kwargs": "self", + "line_number": 59 } }, { @@ -2899,16 +2899,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 89 + "name": "has_permission", + "docstring": "Override this method to customize the way permissions are checked.", + "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "kwargs": "self", + "line_number": 75 } }, { @@ -2916,16 +2916,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 336 + "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 105 } }, { @@ -2933,16 +2933,33 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], - "name": "dispatch", + "name": "get_test_func", + "docstring": "Override this method to use a different test_func method.", + "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", + "kwargs": "self", + "line_number": 99 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "UserPassesTestMixin", + "django.contrib.auth.mixins", + "Django", + "3.0" + ], + "name": "test_func", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == self.reset_url_token:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, self.reset_url_token)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, *args, **kwargs", - "line_number": 257 + "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "kwargs": "self", + "line_number": 94 } }, { @@ -2967,16 +2984,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", + "LoginView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 359 + "name": "form_valid", + "docstring": "Security check complete. Log the user in.", + "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 90 } }, { @@ -2984,16 +3001,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "LoginView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 82 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 95 } }, { @@ -3001,16 +3018,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "LoginView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 220 + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "kwargs": "self", + "line_number": 82 } }, { @@ -3018,16 +3035,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "form_invalid", - "docstring": "If the form is invalid, render the invalid form.", - "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "kwargs": "self, form", - "line_number": 59 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "kwargs": "self", + "line_number": 85 } }, { @@ -3035,16 +3052,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", + "LoginView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 300 + "name": "get_redirect_url", + "docstring": "Return the user-originating redirect URL if it's safe.", + "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", + "kwargs": "self", + "line_number": 69 } }, { @@ -3052,16 +3069,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 123 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", + "kwargs": "self", + "line_number": 65 } }, { @@ -3069,16 +3086,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "LogoutView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 224 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 116 } }, { @@ -3086,16 +3103,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "LogoutView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 347 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 154 } }, { @@ -3103,16 +3120,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LogoutView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 55 + "name": "get_next_page", + "docstring": "", + "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", + "kwargs": "self", + "line_number": 129 } }, { @@ -3120,16 +3137,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "LogoutView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "form_valid", - "docstring": "Security check complete. Log the user in.", - "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 90 + "name": "post", + "docstring": "Logout may be done via POST.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 125 } }, { @@ -3137,16 +3154,16 @@ "pk": null, "fields": { "klass": [ - "BaseListView", - "django.views.generic.list", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "get", + "name": "dispatch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = not self.object_list\n if is_empty:\n raise Http404(_('Empty list and \u201c%(class_name)s.allow_empty\u201d is False.') % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 141 + "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 359 } }, { @@ -3154,16 +3171,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 188 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 336 } }, { @@ -3171,16 +3188,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 187 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 347 } }, { @@ -3188,16 +3205,16 @@ "pk": null, "fields": { "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 105 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "kwargs": "self", + "line_number": 342 } }, { @@ -3205,16 +3222,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "get", + "name": "get_context_data", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 298 + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context.update({\n 'title': self.title,\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 199 } }, { @@ -3222,16 +3239,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 166 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 324 } }, { @@ -3239,33 +3256,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 131 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "TemplateView", - "django.views.generic.base", - "Django", - "3.0" - ], - "name": "get", + "name": "dispatch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 157 + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == self.reset_url_token:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, self.reset_url_token)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", + "kwargs": "self, *args, **kwargs", + "line_number": 257 } }, { @@ -3273,16 +3273,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "get_allow_empty", - "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", - "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "kwargs": "self", - "line_number": 97 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 300 } }, { @@ -3290,16 +3290,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "get_allow_future", - "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", - "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", - "kwargs": "self", - "line_number": 240 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 307 } }, { @@ -3307,16 +3307,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "get_context_data", - "docstring": "Get the context for this view.", - "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", - "kwargs": "self, *, object_list=None, **kwargs", - "line_number": 113 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", + "kwargs": "self", + "line_number": 295 } }, { @@ -3324,16 +3324,16 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", - "django.views.generic.base", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "get_context_data", + "name": "get_user", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n kwargs.setdefault('view', self)\n if self.extra_context is not None:\n kwargs.update(self.extra_context)\n return kwargs\n", - "kwargs": "self, **kwargs", - "line_number": 23 + "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", + "kwargs": "self, uidb64", + "line_number": 286 } }, { @@ -3341,16 +3341,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.0" ], - "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", - "kwargs": "self, **kwargs", - "line_number": 91 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 220 } }, { @@ -3358,16 +3358,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", + "PasswordResetView", "django.contrib.auth.views", "Django", "3.0" ], - "name": "get_context_data", - "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 324 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 224 } }, { @@ -3375,16 +3375,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "SuccessURLAllowedHostsMixin", "django.contrib.auth.views", "Django", "3.0" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 95 + "name": "get_success_url_allowed_hosts", + "docstring": "", + "code": "def get_success_url_allowed_hosts(self):\n return {self.request.get_host(), *self.success_url_allowed_hosts}\n", + "kwargs": "self", + "line_number": 36 } }, { @@ -3392,16 +3392,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "ContextMixin", + "django.views.generic.base", "Django", "3.0" ], "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n kwargs.setdefault('view', self)\n if self.extra_context is not None:\n kwargs.update(self.extra_context)\n return kwargs\n", "kwargs": "self, **kwargs", - "line_number": 307 + "line_number": 23 } }, { @@ -3409,16 +3409,16 @@ "pk": null, "fields": { "klass": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "3.0" ], - "name": "get_context_data", + "name": "delete", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context.update({\n 'title': self.title,\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 199 + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 210 } }, { @@ -3426,16 +3426,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "3.0" ], - "name": "get_context_data", + "name": "get", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 154 + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 187 } }, { @@ -3443,16 +3443,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "3.0" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", - "kwargs": "self, **kwargs", - "line_number": 63 + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", + "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", + "kwargs": "self, *args, **kwargs", + "line_number": 169 } }, { @@ -3460,16 +3460,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "3.0" ], - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", - "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", - "kwargs": "self, obj", - "line_number": 82 + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 201 } }, { @@ -3477,16 +3477,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "3.0" ], - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", - "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", - "kwargs": "self, object_list", - "line_number": 104 + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 207 } }, { @@ -3494,16 +3494,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "3.0" ], - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", - "kwargs": "self, date", - "line_number": 161 + "name": "patch", + "docstring": "", + "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 216 } }, { @@ -3511,16 +3511,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "3.0" ], - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", - "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", - "kwargs": "self, date", - "line_number": 115 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 204 } }, { @@ -3528,16 +3528,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "3.0" ], - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "kwargs": "self, date", - "line_number": 210 + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 213 } }, { @@ -3545,16 +3545,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.0" ], - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", - "kwargs": "self, date", - "line_number": 63 + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "kwargs": "self", + "line_number": 140 } }, { @@ -3562,16 +3562,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.0" ], - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "kwargs": "self, date", - "line_number": 535 + "name": "render_to_response", + "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 124 } }, { @@ -3579,16 +3579,16 @@ "pk": null, "fields": { "klass": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "3.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_choices = {'%W': '1', '%U': '0'}\n try:\n week_start = week_choices[week_format]\n except KeyError:\n raise ValueError('Unknown week format %r. Choices are: %s' % (\n week_format,\n ', '.join(sorted(week_choices)),\n ))\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", - "kwargs": "self", - "line_number": 481 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 157 } }, { @@ -3596,16 +3596,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", + "name": "_allowed_methods", + "docstring": "", + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", "kwargs": "self", - "line_number": 402 + "line_number": 113 } }, { @@ -3613,16 +3613,16 @@ "pk": null, "fields": { "klass": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n return self._get_dated_items(datetime.date.today())\n", - "kwargs": "self", - "line_number": 560 + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\"You tried to pass in the %s method name as a \"\n \"keyword argument to %s(). Don't do that.\"\n % (key, cls.__name__))\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.setup(request, *args, **kwargs)\n if not hasattr(self, 'request'):\n raise AttributeError(\n \"%s instance has no 'request' attribute. Did you override \"\n \"setup() and forget to call super()?\" % cls.__name__\n )\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 48 } }, { @@ -3630,16 +3630,16 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", - "kwargs": "self", - "line_number": 381 + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 89 } }, { @@ -3647,16 +3647,16 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", - "kwargs": "self", - "line_number": 447 + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 99 } }, { @@ -3664,16 +3664,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", - "kwargs": "self", - "line_number": 523 + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", + "kwargs": "self, **kwargs", + "line_number": 38 } }, { @@ -3681,16 +3681,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.0" ], - "name": "get_dated_items", - "docstring": "Obtain the list of dates and items.", - "code": "def get_dated_items(self):\n \"\"\"Obtain the list of dates and items.\"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", - "kwargs": "self", - "line_number": 307 + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 106 } }, { @@ -3698,16 +3698,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.0" ], - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", - "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = not qs if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n })\n return qs\n", - "kwargs": "self, **lookup", - "line_number": 318 + "name": "setup", + "docstring": "Initialize attributes shared by all view methods.", + "code": "def setup(self, request, *args, **kwargs):\n \"\"\"Initialize attributes shared by all view methods.\"\"\"\n self.request = request\n self.args = args\n self.kwargs = kwargs\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 83 } }, { @@ -3715,16 +3715,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", + "BaseArchiveIndexView", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", - "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", "kwargs": "self", - "line_number": 234 + "line_number": 381 } }, { @@ -3732,16 +3732,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", - "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n raise Http404(\n _(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': queryset.model._meta.verbose_name_plural,\n }\n )\n return date_list\n", - "kwargs": "self, queryset, date_type=None, ordering='ASC'", - "line_number": 351 + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 575 } }, { @@ -3754,11 +3754,11 @@ "Django", "3.0" ], - "name": "get_date_list_period", - "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or\n'day'.", - "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or\n 'day'.\n \"\"\"\n return self.date_list_period\n", - "kwargs": "self", - "line_number": 344 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 298 } }, { @@ -3766,16 +3766,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_day", - "docstring": "Return the day for which this view should display data.", - "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "name": "get_dated_items", + "docstring": "Obtain the list of dates and items.", + "code": "def get_dated_items(self):\n \"\"\"Obtain the list of dates and items.\"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", "kwargs": "self", - "line_number": 132 + "line_number": 307 } }, { @@ -3783,16 +3783,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", - "kwargs": "self", - "line_number": 125 + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = not qs if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n })\n return qs\n", + "kwargs": "self, **lookup", + "line_number": 318 } }, { @@ -3800,16 +3800,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_form", - "docstring": "Return an instance of the form to be used in this view.", - "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", - "kwargs": "self, form_class=None", - "line_number": 29 + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n raise Http404(\n _(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': queryset.model._meta.verbose_name_plural,\n }\n )\n return date_list\n", + "kwargs": "self, queryset, date_type=None, ordering='ASC'", + "line_number": 351 } }, { @@ -3817,16 +3817,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", + "name": "get_date_list_period", + "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or\n'day'.", + "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or\n 'day'.\n \"\"\"\n return self.date_list_period\n", "kwargs": "self", - "line_number": 25 + "line_number": 344 } }, { @@ -3834,16 +3834,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", + "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", "kwargs": "self", - "line_number": 82 + "line_number": 311 } }, { @@ -3851,16 +3851,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_form_class", - "docstring": "Return the form class to use in this view.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif getattr(self, 'object', None) is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", - "kwargs": "self", - "line_number": 74 + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 535 } }, { @@ -3868,16 +3868,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", "kwargs": "self", - "line_number": 342 + "line_number": 523 } }, { @@ -3885,16 +3885,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", "kwargs": "self", - "line_number": 103 + "line_number": 447 } }, { @@ -3902,16 +3902,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n return self._get_dated_items(datetime.date.today())\n", "kwargs": "self", - "line_number": 295 + "line_number": 560 } }, { @@ -3919,16 +3919,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_choices = {'%W': '1', '%U': '0'}\n try:\n week_start = week_choices[week_format]\n except KeyError:\n raise ValueError('Unknown week format %r. Choices are: %s' % (\n week_format,\n ', '.join(sorted(week_choices)),\n ))\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", "kwargs": "self", - "line_number": 85 + "line_number": 481 } }, { @@ -3936,16 +3936,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", "kwargs": "self", - "line_number": 35 + "line_number": 402 } }, { @@ -3953,16 +3953,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_initial", - "docstring": "Return the initial data to use for forms on this view.", - "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", "kwargs": "self", - "line_number": 17 + "line_number": 430 } }, { @@ -3970,16 +3970,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "DateMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_login_url", - "docstring": "Override this method to override the login_url attribute.", - "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", + "name": "get_allow_future", + "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", "kwargs": "self", - "line_number": 17 + "line_number": 240 } }, { @@ -3987,16 +3987,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", + "DateMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", "kwargs": "self", - "line_number": 430 + "line_number": 234 } }, { @@ -4004,16 +4004,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DateMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_month", - "docstring": "Return the month for which this view should display data.", - "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", - "kwargs": "self", - "line_number": 80 + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value)\n return value\n", + "kwargs": "self, value", + "line_number": 260 } }, { @@ -4021,16 +4021,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DateMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", - "kwargs": "self", - "line_number": 73 + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", + "kwargs": "self, date", + "line_number": 273 } }, { @@ -4043,11 +4043,11 @@ "Django", "3.0" ], - "name": "_get_next_day", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", "kwargs": "self, date", - "line_number": 153 + "line_number": 161 } }, { @@ -4060,11 +4060,11 @@ "Django", "3.0" ], - "name": "get_next_day", - "docstring": "Get the next valid day.", - "code": "def get_next_day(self, date):\n \"\"\"Get the next valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", - "kwargs": "self, date", - "line_number": 145 + "name": "get_day", + "docstring": "Return the day for which this view should display data.", + "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "kwargs": "self", + "line_number": 132 } }, { @@ -4072,16 +4072,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "_get_next_month", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", - "kwargs": "self, date", - "line_number": 101 + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", + "kwargs": "self", + "line_number": 125 } }, { @@ -4089,16 +4089,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_next_month", - "docstring": "Get the next valid month.", - "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "name": "_get_next_day", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", "kwargs": "self, date", - "line_number": 93 + "line_number": 153 } }, { @@ -4106,16 +4106,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_next_page", - "docstring": "", - "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", - "kwargs": "self", - "line_number": 129 + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"Get the next valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "kwargs": "self, date", + "line_number": 145 } }, { @@ -4123,16 +4123,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "DayMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "_get_next_week", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", "kwargs": "self, date", - "line_number": 199 + "line_number": 149 } }, { @@ -4140,16 +4140,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "MonthMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_next_week", - "docstring": "Get the next valid week.", - "code": "def get_next_week(self, date):\n \"\"\"Get the next valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", "kwargs": "self, date", - "line_number": 191 + "line_number": 115 } }, { @@ -4157,16 +4157,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "_get_next_year", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", - "kwargs": "self, date", - "line_number": 52 + "name": "get_month", + "docstring": "Return the month for which this view should display data.", + "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "kwargs": "self", + "line_number": 80 } }, { @@ -4174,16 +4174,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_next_year", - "docstring": "Get the next valid year.", - "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", - "kwargs": "self, date", - "line_number": 44 + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "kwargs": "self", + "line_number": 73 } }, { @@ -4191,16 +4191,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateDetailView", + "MonthMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_object", - "docstring": "Get the object this request displays.", - "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", - "kwargs": "self, queryset=None", - "line_number": 575 + "name": "_get_next_month", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "kwargs": "self, date", + "line_number": 101 } }, { @@ -4208,16 +4208,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_object", - "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\n \"Generic detail view %s must be called with either an object \"\n \"pk or a slug in the URLconf.\" % self.__class__.__name__\n )\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "kwargs": "self, queryset=None", - "line_number": 20 + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "kwargs": "self, date", + "line_number": 93 } }, { @@ -4225,16 +4225,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "MonthMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", - "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", - "kwargs": "self", - "line_number": 311 + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "kwargs": "self, date", + "line_number": 97 } }, { @@ -4242,16 +4242,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset.", - "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", - "kwargs": "self", - "line_number": 50 + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", + "kwargs": "self, date", + "line_number": 210 } }, { @@ -4259,16 +4259,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "kwargs": "self, queryset", - "line_number": 77 + "name": "_get_next_week", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "kwargs": "self, date", + "line_number": 199 } }, { @@ -4276,16 +4276,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_paginate_orphans", - "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", - "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", - "kwargs": "self", - "line_number": 90 + "name": "get_next_week", + "docstring": "Get the next valid week.", + "code": "def get_next_week(self, date):\n \"\"\"Get the next valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "kwargs": "self, date", + "line_number": 191 } }, { @@ -4293,16 +4293,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", - "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", - "line_number": 83 + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "kwargs": "self, date", + "line_number": 195 } }, { @@ -4310,16 +4310,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_permission_denied_message", - "docstring": "Override this method to override the permission_denied_message attribute.", - "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "name": "get_week", + "docstring": "Return the week for which this view should display data.", + "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", "kwargs": "self", - "line_number": 29 + "line_number": 178 } }, { @@ -4327,16 +4327,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_permission_required", - "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", - "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required,)\n else:\n perms = self.permission_required\n return perms\n", - "kwargs": "self", - "line_number": 59 + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", + "kwargs": "self, date", + "line_number": 214 } }, { @@ -4344,16 +4344,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "WeekMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_prefix", - "docstring": "Return the prefix to use for forms.", - "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", "kwargs": "self", - "line_number": 21 + "line_number": 171 } }, { @@ -4361,16 +4361,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "YearMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_previous_day", - "docstring": "Get the previous valid day.", - "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", "kwargs": "self, date", - "line_number": 149 + "line_number": 63 } }, { @@ -4378,16 +4378,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "YearMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_previous_month", - "docstring": "Get the previous valid month.", - "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "name": "_get_next_year", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", "kwargs": "self, date", - "line_number": 97 + "line_number": 52 } }, { @@ -4395,16 +4395,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "YearMixin", "django.views.generic.dates", "Django", "3.0" ], - "name": "get_previous_week", - "docstring": "Get the previous valid week.", - "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "name": "get_next_year", + "docstring": "Get the next valid year.", + "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", "kwargs": "self, date", - "line_number": 195 + "line_number": 44 } }, { @@ -4429,16 +4429,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_queryset", - "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", - "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", "kwargs": "self", - "line_number": 58 + "line_number": 31 } }, { @@ -4446,16 +4446,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "3.0" ], - "name": "get_queryset", - "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", - "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", "kwargs": "self", - "line_number": 21 + "line_number": 24 } }, { @@ -4463,16 +4463,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseDetailView", + "django.views.generic.detail", "Django", "3.0" ], - "name": "get_redirect_field_name", - "docstring": "Override this method to override the redirect_field_name attribute.", - "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", - "kwargs": "self", - "line_number": 35 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 105 } }, { @@ -4480,16 +4480,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.0" ], - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", - "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", - "kwargs": "self, *args, **kwargs", - "line_number": 169 + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 91 } }, { @@ -4497,16 +4497,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.0" ], - "name": "get_redirect_url", - "docstring": "Return the user-originating redirect URL if it's safe.", - "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", - "kwargs": "self", - "line_number": 69 + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 82 } }, { @@ -4519,11 +4519,11 @@ "Django", "3.0" ], - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", - "code": "def get_slug_field(self):\n \"\"\"Get the name of a slug field to be used to look up by slug.\"\"\"\n return self.slug_field\n", - "kwargs": "self", - "line_number": 78 + "name": "get_object", + "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\n \"Generic detail view %s must be called with either an object \"\n \"pk or a slug in the URLconf.\" % self.__class__.__name__\n )\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 20 } }, { @@ -4531,16 +4531,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.0" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "name": "get_queryset", + "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", "kwargs": "self", - "line_number": 110 + "line_number": 58 } }, { @@ -4548,16 +4548,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.0" ], - "name": "get_success_url", - "docstring": "", - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"Get the name of a slug field to be used to look up by slug.\"\"\"\n return self.slug_field\n", "kwargs": "self", - "line_number": 220 + "line_number": 78 } }, { @@ -4565,16 +4565,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.0" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response() is overridden. Return the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response() is overridden. Return the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif getattr(self, 'model', None) is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", "kwargs": "self", - "line_number": 65 + "line_number": 115 } }, { @@ -4582,16 +4582,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", + "BaseCreateView", "django.views.generic.edit", "Django", "3.0" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", - "kwargs": "self", - "line_number": 49 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 166 } }, { @@ -4599,16 +4599,16 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "BaseCreateView", + "django.views.generic.edit", "Django", "3.0" ], - "name": "get_success_url_allowed_hosts", - "docstring": "", - "code": "def get_success_url_allowed_hosts(self):\n return {self.request.get_host(), *self.success_url_allowed_hosts}\n", - "kwargs": "self", - "line_number": 36 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 170 } }, { @@ -4616,16 +4616,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.0" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n elif not names:\n raise ImproperlyConfigured(\n \"%(cls)s requires either a 'template_name' attribute \"\n \"or a get_queryset() method that returns a QuerySet.\" % {\n 'cls': self.__class__.__name__,\n }\n )\n return names\n", - "kwargs": "self", - "line_number": 165 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 188 } }, { @@ -4633,16 +4633,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.0" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "kwargs": "self", - "line_number": 140 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 192 } }, { @@ -4650,16 +4650,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DeletionMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response() is overridden. Return the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response() is overridden. Return the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif getattr(self, 'model', None) is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", - "kwargs": "self", - "line_number": 115 + "name": "delete", + "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 206 } }, { @@ -4667,16 +4667,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "DeletionMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "get_test_func", - "docstring": "Override this method to use a different test_func method.", - "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", "kwargs": "self", - "line_number": 99 + "line_number": 220 } }, { @@ -4684,16 +4684,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DeletionMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "get_user", + "name": "post", "docstring": "", - "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", - "kwargs": "self, uidb64", - "line_number": 286 + "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 217 } }, { @@ -4701,16 +4701,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "get_week", - "docstring": "Return the week for which this view should display data.", - "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", - "kwargs": "self", - "line_number": 178 + "name": "form_invalid", + "docstring": "If the form is invalid, render the invalid form.", + "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 59 } }, { @@ -4718,16 +4718,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "kwargs": "self, date", - "line_number": 214 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 55 } }, { @@ -4735,16 +4735,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", - "kwargs": "self", - "line_number": 171 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", + "kwargs": "self, **kwargs", + "line_number": 63 } }, { @@ -4752,16 +4752,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "get_year", - "docstring": "Return the year for which this view should display data.", - "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", - "kwargs": "self", - "line_number": 31 + "name": "get_form", + "docstring": "Return an instance of the form to be used in this view.", + "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class=None", + "line_number": 29 } }, { @@ -4769,16 +4769,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", "kwargs": "self", - "line_number": 24 + "line_number": 25 } }, { @@ -4786,16 +4786,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "handle_no_permission", - "docstring": "", - "code": "def handle_no_permission(self):\n if self.raise_exception or self.request.user.is_authenticated:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", "kwargs": "self", - "line_number": 41 + "line_number": 35 } }, { @@ -4803,16 +4803,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "has_permission", - "docstring": "Override this method to customize the way permissions are checked.", - "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "name": "get_initial", + "docstring": "Return the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", "kwargs": "self", - "line_number": 75 + "line_number": 17 } }, { @@ -4820,16 +4820,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "head", - "docstring": "", - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 201 + "name": "get_prefix", + "docstring": "Return the prefix to use for forms.", + "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", + "kwargs": "self", + "line_number": 21 } }, { @@ -4837,16 +4837,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "http_method_not_allowed", - "docstring": "", - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 99 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", + "kwargs": "self", + "line_number": 49 } }, { @@ -4854,16 +4854,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", - "kwargs": "self, **kwargs", - "line_number": 38 + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 123 } }, { @@ -4871,16 +4871,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value)\n return value\n", - "kwargs": "self, value", - "line_number": 260 + "name": "get_form_class", + "docstring": "Return the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif getattr(self, 'object', None) is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "kwargs": "self", + "line_number": 74 } }, { @@ -4888,16 +4888,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "kwargs": "self, date", - "line_number": 273 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 103 } }, { @@ -4905,16 +4905,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 207 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 110 } }, { @@ -4922,16 +4922,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.0" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 106 + "line_number": 131 } }, { @@ -4939,16 +4939,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.0" ], - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_('Page is not \u201clast\u201d, nor can it be converted to an int.'))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", - "kwargs": "self, queryset, page_size", - "line_number": 54 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handle POST requests: instantiate a form instance with the passed\n POST variables and then check if it's valid.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 135 } }, { @@ -4956,16 +4956,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.0" ], - "name": "patch", + "name": "put", "docstring": "", - "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 216 + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 148 } }, { @@ -4973,16 +4973,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "BaseListView", + "django.views.generic.list", "Django", "3.0" ], - "name": "post", - "docstring": "Logout may be done via POST.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = not self.object_list\n if is_empty:\n raise Http404(_('Empty list and “%(class_name)s.allow_empty” is False.') % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 125 + "line_number": 141 } }, { @@ -4990,16 +4990,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 204 + "name": "get_allow_empty", + "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 97 } }, { @@ -5007,16 +5007,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 217 + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, *, object_list=None, **kwargs", + "line_number": 113 } }, { @@ -5024,16 +5024,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handle POST requests: instantiate a form instance with the passed\n POST variables and then check if it's valid.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 135 + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 104 } }, { @@ -5041,16 +5041,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 192 + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset.", + "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", + "kwargs": "self", + "line_number": 50 } }, { @@ -5058,16 +5058,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 170 + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 77 } }, { @@ -5075,16 +5075,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "put", - "docstring": "", - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 213 + "name": "get_paginate_orphans", + "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", + "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "kwargs": "self", + "line_number": 90 } }, { @@ -5092,16 +5092,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "put", - "docstring": "", - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 148 + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", + "line_number": 83 } }, { @@ -5109,16 +5109,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "render_to_response", - "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", - "kwargs": "self, context, **response_kwargs", - "line_number": 124 + "name": "get_queryset", + "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", + "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "kwargs": "self", + "line_number": 21 } }, { @@ -5126,16 +5126,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "setup", - "docstring": "Initialize attributes shared by all view methods.", - "code": "def setup(self, request, *args, **kwargs):\n \"\"\"Initialize attributes shared by all view methods.\"\"\"\n self.request = request\n self.args = args\n self.kwargs = kwargs\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 83 + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_('Page is not “last”, nor can it be converted to an int.'))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 54 } }, { @@ -5143,16 +5143,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.0" ], - "name": "test_func", - "docstring": "", - "code": "def test_func(self):\n raise NotImplementedError(\n '{0} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n elif not names:\n raise ImproperlyConfigured(\n \"%(cls)s requires either a 'template_name' attribute \"\n \"or a get_queryset() method that returns a QuerySet.\" % {\n 'cls': self.__class__.__name__,\n }\n )\n return names\n", "kwargs": "self", - "line_number": 94 + "line_number": 165 } }, { @@ -5160,14 +5160,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], "child": [ - "ListView", - "django.views.generic.list", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], @@ -5179,14 +5179,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], "child": [ - "TemplateView", - "django.views.generic.base", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], @@ -5198,14 +5198,14 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], "child": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "3.0" ], @@ -5217,14 +5217,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "3.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "3.0" ], @@ -5236,18 +5236,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "FormView", + "django.views.generic.edit", "Django", "3.0" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5255,14 +5255,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "3.0" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "3.0" ], @@ -5274,18 +5274,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "3.0" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5293,14 +5293,14 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.0" ], "child": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.0" ], @@ -5312,18 +5312,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "3.0" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5331,14 +5331,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.0" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.0" ], @@ -5350,18 +5350,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormView", + "django.views.generic.edit", "Django", "3.0" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5369,14 +5369,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.0" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "3.0" ], @@ -5388,18 +5388,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "TemplateView", + "django.views.generic.base", "Django", "3.0" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5407,14 +5407,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.0" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.0" ], @@ -5426,18 +5426,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "FormView", + "django.views.generic.edit", "Django", "3.0" ], "child": [ - "WeekArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5445,14 +5445,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.0" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "3.0" ], @@ -5464,18 +5464,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "3.0" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5483,14 +5483,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.0" ], "child": [ - "DetailView", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.0" ], @@ -5502,18 +5502,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "FormView", + "django.views.generic.edit", "Django", "3.0" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5521,14 +5521,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", + "View", "django.views.generic.base", "Django", "3.0" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "3.0" ], @@ -5540,14 +5540,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.0" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "3.0" ], @@ -5559,18 +5559,18 @@ "pk": null, "fields": { "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "3.0" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5578,18 +5578,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "3.0" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "3.0" ], - "order": 0 + "order": 2 } }, { @@ -5597,14 +5597,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.0" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "3.0" ], @@ -5616,18 +5616,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "CreateView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5635,14 +5635,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "3.0" ], @@ -5654,14 +5654,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "3.0" ], @@ -5673,18 +5673,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MonthMixin", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "FormView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5692,18 +5692,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 2 } }, { @@ -5711,18 +5711,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "DateMixin", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 3 } }, { @@ -5730,18 +5730,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", + "BaseDetailView", "django.views.generic.detail", "Django", "3.0" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 4 } }, { @@ -5755,8 +5755,8 @@ "3.0" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.0" ], @@ -5768,18 +5768,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "DateMixin", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "RedirectView", - "django.views.generic.base", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5787,18 +5787,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", + "View", "django.views.generic.base", "Django", "3.0" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 2 } }, { @@ -5806,14 +5806,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], @@ -5825,18 +5825,18 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5844,18 +5844,18 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 2 } }, { @@ -5863,18 +5863,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 3 } }, { @@ -5882,14 +5882,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.0" ], @@ -5901,18 +5901,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5920,18 +5920,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 2 } }, { @@ -5939,14 +5939,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], @@ -5958,14 +5958,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "3.0" ], @@ -5977,18 +5977,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -5996,18 +5996,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 2 } }, { @@ -6015,14 +6015,14 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "YearMixin", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.0" ], @@ -6034,18 +6034,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "ArchiveIndexView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "3.0" ], - "order": 0 + "order": 1 } }, { @@ -6053,18 +6053,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.0" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "DateDetailView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6072,13 +6072,13 @@ "pk": null, "fields": { "parent": [ - "BaseWeekArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "3.0" ], "child": [ - "WeekArchiveView", + "DateDetailView", "django.views.generic.dates", "Django", "3.0" @@ -6091,18 +6091,18 @@ "pk": null, "fields": { "parent": [ - "BaseFormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.0" ], "child": [ - "FormView", - "django.views.generic.edit", + "DayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6110,13 +6110,13 @@ "pk": null, "fields": { "parent": [ - "BaseYearArchiveView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "3.0" ], "child": [ - "YearArchiveView", + "DayArchiveView", "django.views.generic.dates", "Django", "3.0" @@ -6129,18 +6129,18 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.0" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "MonthArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6148,14 +6148,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "MonthArchiveView", + "django.views.generic.dates", "Django", "3.0" ], @@ -6167,18 +6167,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.0" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6186,14 +6186,14 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "DetailView", - "django.views.generic.detail", + "TodayArchiveView", + "django.views.generic.dates", "Django", "3.0" ], @@ -6205,18 +6205,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.0" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6224,14 +6224,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "3.0" ], "child": [ - "TemplateView", - "django.views.generic.base", + "WeekArchiveView", + "django.views.generic.dates", "Django", "3.0" ], @@ -6243,18 +6243,18 @@ "pk": null, "fields": { "parent": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.0" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "YearArchiveView", + "django.views.generic.dates", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6262,13 +6262,13 @@ "pk": null, "fields": { "parent": [ - "BaseArchiveIndexView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "3.0" ], "child": [ - "ArchiveIndexView", + "YearArchiveView", "django.views.generic.dates", "Django", "3.0" @@ -6281,18 +6281,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.0" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6300,14 +6300,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", + "View", "django.views.generic.base", "Django", "3.0" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "BaseDetailView", + "django.views.generic.detail", "Django", "3.0" ], @@ -6319,18 +6319,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6344,8 +6344,8 @@ "3.0" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "DetailView", + "django.views.generic.detail", "Django", "3.0" ], @@ -6357,18 +6357,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "3.0" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6376,18 +6376,18 @@ "pk": null, "fields": { "parent": [ - "View", + "TemplateResponseMixin", "django.views.generic.base", "Django", "3.0" ], "child": [ - "BaseListView", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6395,18 +6395,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.0" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6420,7 +6420,7 @@ "3.0" ], "child": [ - "BaseFormView", + "BaseCreateView", "django.views.generic.edit", "Django", "3.0" @@ -6433,18 +6433,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "3.0" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6452,14 +6452,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "BaseDetailView", + "django.views.generic.detail", "Django", "3.0" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "BaseDeleteView", + "django.views.generic.edit", "Django", "3.0" ], @@ -6471,18 +6471,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", + "FormMixin", "django.views.generic.edit", "Django", "3.0" ], "child": [ - "BaseUpdateView", + "BaseFormView", "django.views.generic.edit", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6490,14 +6490,14 @@ "pk": null, "fields": { "parent": [ - "WeekMixin", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.0" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "3.0" ], @@ -6509,18 +6509,18 @@ "pk": null, "fields": { "parent": [ - "BaseListView", - "django.views.generic.list", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.0" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6528,14 +6528,14 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.0" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.0" ], @@ -6547,8 +6547,8 @@ "pk": null, "fields": { "parent": [ - "BaseCreateView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.0" ], @@ -6558,7 +6558,7 @@ "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6566,14 +6566,14 @@ "pk": null, "fields": { "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "3.0" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "3.0" ], @@ -6585,18 +6585,18 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.0" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DeleteView", + "django.views.generic.edit", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6604,14 +6604,14 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "3.0" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "3.0" ], @@ -6623,18 +6623,18 @@ "pk": null, "fields": { "parent": [ - "BaseDeleteView", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "3.0" ], "child": [ - "DeleteView", + "FormMixin", "django.views.generic.edit", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6642,18 +6642,18 @@ "pk": null, "fields": { "parent": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.0" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6661,14 +6661,14 @@ "pk": null, "fields": { "parent": [ - "FormView", + "BaseFormView", "django.views.generic.edit", "Django", "3.0" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "FormView", + "django.views.generic.edit", "Django", "3.0" ], @@ -6680,18 +6680,18 @@ "pk": null, "fields": { "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.0" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.0" ], - "order": 1 + "order": 0 } }, { @@ -6699,14 +6699,14 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.0" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.0" ], @@ -6724,12 +6724,12 @@ "3.0" ], "child": [ - "TemplateView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.0" ], - "order": 2 + "order": 0 } }, { @@ -6737,18 +6737,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.0" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "3.0" ], - "order": 2 + "order": 0 } }, { @@ -6756,18 +6756,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.0" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "3.0" ], - "order": 2 + "order": 1 } }, { @@ -6775,18 +6775,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "3.0" ], - "order": 2 + "order": 0 } }, { @@ -6794,18 +6794,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "3.0" ], - "order": 2 + "order": 1 } }, { @@ -6813,18 +6813,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.0" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "3.0" ], - "order": 2 + "order": 0 } }, { @@ -6832,18 +6832,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "3.0" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "3.0" ], - "order": 3 + "order": 1 } }, { @@ -6851,18 +6851,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "3.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.0" ], - "order": 3 + "order": 0 } }, { @@ -6870,18 +6870,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.0" ], - "order": 4 + "order": 0 } } ] diff --git a/cbv/fixtures/3.1.json b/cbv/fixtures/3.1.json index ad600c1d..72efcf99 100644 --- a/cbv/fixtures/3.1.json +++ b/cbv/fixtures/3.1.json @@ -16,9 +16,9 @@ "Django", "3.1" ], - "name": "django.views.generic", + "name": "django.contrib.auth.mixins", "docstring": "", - "filename": "/django/views/generic/__init__.py" + "filename": "/django/contrib/auth/mixins.py" } }, { @@ -28,9 +28,9 @@ "Django", "3.1" ], - "name": "django.views.generic.base", + "name": "django.contrib.auth.views", "docstring": "", - "filename": "/django/views/generic/base.py" + "filename": "/django/contrib/auth/views.py" } }, { @@ -40,9 +40,9 @@ "Django", "3.1" ], - "name": "django.views.generic.dates", + "name": "django.views.generic", "docstring": "", - "filename": "/django/views/generic/dates.py" + "filename": "/django/views/generic/__init__.py" } }, { @@ -52,9 +52,9 @@ "Django", "3.1" ], - "name": "django.views.generic.detail", + "name": "django.views.generic.base", "docstring": "", - "filename": "/django/views/generic/detail.py" + "filename": "/django/views/generic/base.py" } }, { @@ -64,9 +64,9 @@ "Django", "3.1" ], - "name": "django.views.generic.edit", + "name": "django.views.generic.dates", "docstring": "", - "filename": "/django/views/generic/edit.py" + "filename": "/django/views/generic/dates.py" } }, { @@ -76,9 +76,9 @@ "Django", "3.1" ], - "name": "django.views.generic.list", + "name": "django.views.generic.detail", "docstring": "", - "filename": "/django/views/generic/list.py" + "filename": "/django/views/generic/detail.py" } }, { @@ -88,9 +88,9 @@ "Django", "3.1" ], - "name": "django.contrib.auth.views", + "name": "django.views.generic.edit", "docstring": "", - "filename": "/django/contrib/auth/views.py" + "filename": "/django/views/generic/edit.py" } }, { @@ -100,9 +100,9 @@ "Django", "3.1" ], - "name": "django.contrib.auth.mixins", + "name": "django.views.generic.list", "docstring": "", - "filename": "/django/contrib/auth/mixins.py" + "filename": "/django/views/generic/list.py" } }, { @@ -1010,13 +1010,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], - "name": "allow_empty", - "value": "True", + "name": "login_url", + "value": "None", "line_number": -1 } }, @@ -1025,13 +1025,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], - "name": "allow_empty", - "value": "False", + "name": "permission_denied_message", + "value": "''", "line_number": -1 } }, @@ -1040,12 +1040,12 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], - "name": "allow_future", + "name": "raise_exception", "value": "False", "line_number": -1 } @@ -1055,13 +1055,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], - "name": "args", - "value": "", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1070,12 +1070,12 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], - "name": "authentication_form", + "name": "permission_required", "value": "None", "line_number": -1 } @@ -1085,13 +1085,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "__cause__", - "value": "", + "name": "authentication_form", + "value": "None", "line_number": -1 } }, @@ -1100,14 +1100,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "content_type", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 173 } }, { @@ -1115,13 +1115,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "__context__", - "value": "", + "name": "redirect_authenticated_user", + "value": "False", "line_number": -1 } }, @@ -1130,13 +1130,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "LoginView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "context_object_name", - "value": "None", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1145,13 +1145,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "LoginView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "context_object_name", - "value": "None", + "name": "template_name", + "value": "'registration/login.html'", "line_number": -1 } }, @@ -1160,13 +1160,13 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "context_object_name", - "value": "'latest'", + "name": "next_page", + "value": "None", "line_number": -1 } }, @@ -1175,13 +1175,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "date_field", - "value": "None", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1190,13 +1190,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "date_list_period", - "value": "'month'", + "name": "template_name", + "value": "'registration/logged_out.html'", "line_number": -1 } }, @@ -1205,13 +1205,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "date_list_period", - "value": "'year'", + "name": "template_name", + "value": "'registration/password_change_done.html'", "line_number": -1 } }, @@ -1220,13 +1220,13 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "date_list_period", - "value": "'day'", + "name": "title", + "value": "gettext_lazy('Password change successful')", "line_number": -1 } }, @@ -1235,14 +1235,14 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "day", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 373 } }, { @@ -1250,13 +1250,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "day_format", - "value": "'%d'", + "name": "success_url", + "value": "reverse_lazy('password_change_done')", "line_number": -1 } }, @@ -1265,13 +1265,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "__delattr__", - "value": "", + "name": "template_name", + "value": "'registration/password_change_form.html'", "line_number": -1 } }, @@ -1280,13 +1280,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordChangeView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "email_template_name", - "value": "'registration/password_reset_email.html'", + "name": "title", + "value": "gettext_lazy('Password change')", "line_number": -1 } }, @@ -1310,13 +1310,13 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", - "django.views.generic.base", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "extra_context", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_complete.html'", "line_number": -1 } }, @@ -1325,13 +1325,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetCompleteView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "extra_email_context", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password reset complete')", "line_number": -1 } }, @@ -1340,14 +1340,14 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "fields", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 329 } }, { @@ -1355,14 +1355,14 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "form_class", - "value": "", - "line_number": 173 + "name": "post_reset_login", + "value": "False", + "line_number": -1 } }, { @@ -1370,12 +1370,12 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "form_class", + "name": "post_reset_login_backend", "value": "None", "line_number": -1 } @@ -1385,14 +1385,14 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "form_class", - "value": "", - "line_number": 251 + "name": "reset_url_token", + "value": "'set-password'", + "line_number": -1 } }, { @@ -1405,9 +1405,9 @@ "Django", "3.1" ], - "name": "form_class", - "value": "", - "line_number": 329 + "name": "success_url", + "value": "reverse_lazy('password_reset_complete')", + "line_number": -1 } }, { @@ -1415,14 +1415,14 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "form_class", - "value": "", - "line_number": 373 + "name": "template_name", + "value": "'registration/password_reset_confirm.html'", + "line_number": -1 } }, { @@ -1430,13 +1430,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "from_email", - "value": "None", + "name": "title", + "value": "gettext_lazy('Enter new password')", "line_number": -1 } }, @@ -1445,13 +1445,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "__getattribute__", - "value": "", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1460,13 +1460,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetDoneView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "html_email_template_name", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_done.html'", "line_number": -1 } }, @@ -1475,13 +1475,13 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "http_method_names", - "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "name": "title", + "value": "gettext_lazy('Password reset sent')", "line_number": -1 } }, @@ -1490,13 +1490,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "__init__", - "value": "", + "name": "email_template_name", + "value": "'registration/password_reset_email.html'", "line_number": -1 } }, @@ -1505,13 +1505,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "initial", - "value": "{}", + "name": "extra_email_context", + "value": "None", "line_number": -1 } }, @@ -1520,14 +1520,14 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "login_url", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 251 } }, { @@ -1535,13 +1535,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "make_object_list", - "value": "False", + "name": "from_email", + "value": "None", "line_number": -1 } }, @@ -1550,12 +1550,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "model", + "name": "html_email_template_name", "value": "None", "line_number": -1 } @@ -1565,13 +1565,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "model", - "value": "None", + "name": "subject_template_name", + "value": "'registration/password_reset_subject.txt'", "line_number": -1 } }, @@ -1580,13 +1580,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "month", - "value": "None", + "name": "success_url", + "value": "reverse_lazy('password_reset_done')", "line_number": -1 } }, @@ -1595,13 +1595,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "month_format", - "value": "'%b'", + "name": "template_name", + "value": "'registration/password_reset_form.html'", "line_number": -1 } }, @@ -1610,13 +1610,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", + "PasswordResetView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "next_page", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password reset')", "line_number": -1 } }, @@ -1625,13 +1625,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "ordering", - "value": "None", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1640,13 +1640,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "page_kwarg", - "value": "'page'", + "name": "success_url_allowed_hosts", + "value": "set()", "line_number": -1 } }, @@ -1655,13 +1655,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "paginate_by", - "value": "None", + "name": "args", + "value": "", "line_number": -1 } }, @@ -1670,13 +1670,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "paginate_orphans", - "value": "0", + "name": "__cause__", + "value": "", "line_number": -1 } }, @@ -1685,14 +1685,14 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "paginator_class", - "value": "", - "line_number": 27 + "name": "__context__", + "value": "", + "line_number": -1 } }, { @@ -1700,13 +1700,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "pattern_name", - "value": "None", + "name": "__delattr__", + "value": "", "line_number": -1 } }, @@ -1715,13 +1715,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "permanent", - "value": "False", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -1730,13 +1730,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "permission_denied_message", - "value": "''", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -1745,13 +1745,13 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "permission_required", - "value": "None", + "name": "__reduce__", + "value": "", "line_number": -1 } }, @@ -1760,13 +1760,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "pk_url_kwarg", - "value": "'pk'", + "name": "__repr__", + "value": "", "line_number": -1 } }, @@ -1775,13 +1775,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "post_reset_login", - "value": "False", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -1790,13 +1790,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "post_reset_login_backend", - "value": "None", + "name": "__setstate__", + "value": "", "line_number": -1 } }, @@ -1805,13 +1805,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "prefix", - "value": "None", + "name": "__str__", + "value": "", "line_number": -1 } }, @@ -1820,13 +1820,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "query_pk_and_slug", - "value": "False", + "name": "__suppress_context__", + "value": "", "line_number": -1 } }, @@ -1835,13 +1835,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "queryset", - "value": "None", + "name": "__traceback__", + "value": "", "line_number": -1 } }, @@ -1850,13 +1850,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "3.1" ], - "name": "queryset", - "value": "None", + "name": "with_traceback", + "value": "", "line_number": -1 } }, @@ -1865,13 +1865,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", + "ContextMixin", "django.views.generic.base", "Django", "3.1" ], - "name": "query_string", - "value": "False", + "name": "extra_context", + "value": "None", "line_number": -1 } }, @@ -1880,13 +1880,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "RedirectView", + "django.views.generic.base", "Django", "3.1" ], - "name": "raise_exception", - "value": "False", + "name": "pattern_name", + "value": "None", "line_number": -1 } }, @@ -1895,12 +1895,12 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "3.1" ], - "name": "redirect_authenticated_user", + "name": "permanent", "value": "False", "line_number": -1 } @@ -1910,13 +1910,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "3.1" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "query_string", + "value": "False", "line_number": -1 } }, @@ -1925,13 +1925,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "3.1" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "url", + "value": "None", "line_number": -1 } }, @@ -1940,13 +1940,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.1" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "content_type", + "value": "None", "line_number": -1 } }, @@ -1955,14 +1955,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.1" ], - "name": "__reduce__", - "value": "", - "line_number": -1 + "name": "response_class", + "value": "", + "line_number": 138 } }, { @@ -1970,13 +1970,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.1" ], - "name": "__repr__", - "value": "", + "name": "template_engine", + "value": "None", "line_number": -1 } }, @@ -1985,13 +1985,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.1" ], - "name": "reset_url_token", - "value": "'set-password'", + "name": "template_name", + "value": "None", "line_number": -1 } }, @@ -2000,14 +2000,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", + "View", "django.views.generic.base", "Django", "3.1" ], - "name": "response_class", - "value": "", - "line_number": 138 + "name": "http_method_names", + "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "line_number": -1 } }, { @@ -2015,13 +2015,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "__setattr__", - "value": "", + "name": "template_name_suffix", + "value": "'_archive'", "line_number": -1 } }, @@ -2030,13 +2030,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "__setstate__", - "value": "", + "name": "context_object_name", + "value": "'latest'", "line_number": -1 } }, @@ -2045,13 +2045,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "slug_field", - "value": "'slug'", + "name": "allow_empty", + "value": "False", "line_number": -1 } }, @@ -2060,13 +2060,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "slug_url_kwarg", - "value": "'slug'", + "name": "date_list_period", + "value": "'year'", "line_number": -1 } }, @@ -2075,13 +2075,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "__str__", - "value": "", + "name": "date_list_period", + "value": "'day'", "line_number": -1 } }, @@ -2090,13 +2090,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "subject_template_name", - "value": "'registration/password_reset_subject.txt'", + "name": "date_list_period", + "value": "'month'", "line_number": -1 } }, @@ -2105,13 +2105,13 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "success_url", - "value": "None", + "name": "make_object_list", + "value": "False", "line_number": -1 } }, @@ -2120,13 +2120,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_done')", + "name": "allow_future", + "value": "False", "line_number": -1 } }, @@ -2135,12 +2135,12 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "success_url", + "name": "date_field", "value": "None", "line_number": -1 } @@ -2150,13 +2150,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_complete')", + "name": "uses_datetime_field", + "value": "", "line_number": -1 } }, @@ -2165,13 +2165,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "success_url", - "value": "reverse_lazy('password_change_done')", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2180,13 +2180,13 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "success_url_allowed_hosts", - "value": "set()", + "name": "day", + "value": "None", "line_number": -1 } }, @@ -2195,13 +2195,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "DayMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "__suppress_context__", - "value": "", + "name": "day_format", + "value": "'%d'", "line_number": -1 } }, @@ -2210,13 +2210,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MonthArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "template_engine", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_month'", "line_number": -1 } }, @@ -2225,13 +2225,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "template_name", - "value": "'registration/password_change_done.html'", + "name": "month", + "value": "None", "line_number": -1 } }, @@ -2240,13 +2240,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "template_name", - "value": "'registration/login.html'", + "name": "month_format", + "value": "'%b'", "line_number": -1 } }, @@ -2255,13 +2255,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "TodayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "template_name", - "value": "'registration/logged_out.html'", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2270,13 +2270,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "template_name", - "value": "'registration/password_change_form.html'", + "name": "template_name_suffix", + "value": "'_archive_week'", "line_number": -1 } }, @@ -2285,13 +2285,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "template_name", - "value": "'registration/password_reset_complete.html'", + "name": "week", + "value": "None", "line_number": -1 } }, @@ -2300,13 +2300,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "template_name", - "value": "'registration/password_reset_confirm.html'", + "name": "week_format", + "value": "'%U'", "line_number": -1 } }, @@ -2315,13 +2315,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "YearArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "template_name", - "value": "'registration/password_reset_done.html'", + "name": "template_name_suffix", + "value": "'_archive_year'", "line_number": -1 } }, @@ -2330,12 +2330,12 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "template_name", + "name": "year", "value": "None", "line_number": -1 } @@ -2345,13 +2345,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "template_name", - "value": "'registration/password_reset_form.html'", + "name": "year_format", + "value": "'%Y'", "line_number": -1 } }, @@ -2360,12 +2360,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", + "SingleObjectMixin", "django.views.generic.detail", "Django", "3.1" ], - "name": "template_name_field", + "name": "context_object_name", "value": "None", "line_number": -1 } @@ -2375,13 +2375,13 @@ "pk": null, "fields": { "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2390,13 +2390,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], - "name": "template_name_suffix", - "value": "'_list'", + "name": "pk_url_kwarg", + "value": "'pk'", "line_number": -1 } }, @@ -2405,13 +2405,13 @@ "pk": null, "fields": { "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], - "name": "template_name_suffix", - "value": "'_archive'", + "name": "query_pk_and_slug", + "value": "False", "line_number": -1 } }, @@ -2420,13 +2420,13 @@ "pk": null, "fields": { "klass": [ - "DeleteView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], - "name": "template_name_suffix", - "value": "'_confirm_delete'", + "name": "queryset", + "value": "None", "line_number": -1 } }, @@ -2435,13 +2435,13 @@ "pk": null, "fields": { "klass": [ - "CreateView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "slug_field", + "value": "'slug'", "line_number": -1 } }, @@ -2450,13 +2450,13 @@ "pk": null, "fields": { "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], - "name": "template_name_suffix", - "value": "'_archive_month'", + "name": "slug_url_kwarg", + "value": "'slug'", "line_number": -1 } }, @@ -2465,13 +2465,13 @@ "pk": null, "fields": { "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.1" ], - "name": "template_name_suffix", - "value": "'_archive_week'", + "name": "template_name_field", + "value": "None", "line_number": -1 } }, @@ -2495,7 +2495,7 @@ "pk": null, "fields": { "klass": [ - "UpdateView", + "CreateView", "django.views.generic.edit", "Django", "3.1" @@ -2510,13 +2510,13 @@ "pk": null, "fields": { "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "3.1" ], "name": "template_name_suffix", - "value": "'_archive_day'", + "value": "'_confirm_delete'", "line_number": -1 } }, @@ -2525,13 +2525,13 @@ "pk": null, "fields": { "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "template_name_suffix", - "value": "'_archive_year'", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2540,13 +2540,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "title", - "value": "gettext_lazy('Password reset complete')", + "name": "form_class", + "value": "None", "line_number": -1 } }, @@ -2555,13 +2555,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "title", - "value": "gettext_lazy('Password reset sent')", + "name": "initial", + "value": "{}", "line_number": -1 } }, @@ -2570,13 +2570,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "title", - "value": "gettext_lazy('Password change successful')", + "name": "prefix", + "value": "None", "line_number": -1 } }, @@ -2585,13 +2585,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "title", - "value": "gettext_lazy('Password change')", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2600,13 +2600,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "title", - "value": "gettext_lazy('Password reset')", + "name": "fields", + "value": "None", "line_number": -1 } }, @@ -2615,13 +2615,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "UpdateView", + "django.views.generic.edit", "Django", "3.1" ], - "name": "title", - "value": "gettext_lazy('Enter new password')", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -2630,13 +2630,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "token_generator", - "value": "", + "name": "allow_empty", + "value": "True", "line_number": -1 } }, @@ -2645,13 +2645,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "token_generator", - "value": "", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -2660,13 +2660,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "__traceback__", - "value": "", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2675,12 +2675,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "url", + "name": "ordering", "value": "None", "line_number": -1 } @@ -2690,13 +2690,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "uses_datetime_field", - "value": "", + "name": "page_kwarg", + "value": "'page'", "line_number": -1 } }, @@ -2705,12 +2705,12 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "week", + "name": "paginate_by", "value": "None", "line_number": -1 } @@ -2720,13 +2720,13 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "week_format", - "value": "'%U'", + "name": "paginate_orphans", + "value": "0", "line_number": -1 } }, @@ -2735,14 +2735,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "with_traceback", - "value": "", - "line_number": -1 + "name": "paginator_class", + "value": "", + "line_number": 27 } }, { @@ -2750,12 +2750,12 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "year", + "name": "queryset", "value": "None", "line_number": -1 } @@ -2765,13 +2765,13 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "year_format", - "value": "'%Y'", + "name": "template_name_suffix", + "value": "'_list'", "line_number": -1 } }, @@ -2780,16 +2780,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], - "name": "_allowed_methods", - "docstring": "", - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "name": "get_login_url", + "docstring": "Override this method to override the login_url attribute.", + "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", "kwargs": "self", - "line_number": 114 + "line_number": 17 } }, { @@ -2797,16 +2797,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], - "name": "as_view", - "docstring": "Main entry point for a request-response process.", - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\n 'The method name %s is not accepted as a keyword argument '\n 'to %s().' % (key, cls.__name__)\n )\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n self.setup(request, *args, **kwargs)\n if not hasattr(self, 'request'):\n raise AttributeError(\n \"%s instance has no 'request' attribute. Did you override \"\n \"setup() and forget to call super()?\" % cls.__name__\n )\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "kwargs": "cls, **initkwargs", - "line_number": 48 + "name": "get_permission_denied_message", + "docstring": "Override this method to override the permission_denied_message attribute.", + "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "kwargs": "self", + "line_number": 29 } }, { @@ -2814,16 +2814,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], - "name": "delete", - "docstring": "", - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 211 + "name": "get_redirect_field_name", + "docstring": "Override this method to override the redirect_field_name attribute.", + "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", + "kwargs": "self", + "line_number": 35 } }, { @@ -2831,16 +2831,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], - "name": "delete", - "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 206 + "name": "handle_no_permission", + "docstring": "", + "code": "def handle_no_permission(self):\n if self.raise_exception or self.request.user.is_authenticated:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", + "kwargs": "self", + "line_number": 41 } }, { @@ -2848,16 +2848,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n if self.redirect_authenticated_user and self.request.user.is_authenticated:\n redirect_to = self.get_success_url()\n if redirect_to == self.request.path:\n raise ValueError(\n \"Redirection loop for authenticated user detected. Check that \"\n \"your LOGIN_REDIRECT_URL doesn't point to a login page.\"\n )\n return HttpResponseRedirect(redirect_to)\n return super().dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 51 + "line_number": 49 } }, { @@ -2865,16 +2865,16 @@ "pk": null, "fields": { "klass": [ - "LoginRequiredMixin", + "PermissionRequiredMixin", "django.contrib.auth.mixins", "Django", "3.1" ], "name": "dispatch", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 49 + "line_number": 82 } }, { @@ -2882,16 +2882,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 359 + "name": "get_permission_required", + "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", + "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required,)\n else:\n perms = self.permission_required\n return perms\n", + "kwargs": "self", + "line_number": 59 } }, { @@ -2904,11 +2904,11 @@ "Django", "3.1" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 82 + "name": "has_permission", + "docstring": "Override this method to customize the way permissions are checked.", + "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "kwargs": "self", + "line_number": 75 } }, { @@ -2916,16 +2916,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 220 + "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 105 } }, { @@ -2933,16 +2933,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 116 + "name": "get_test_func", + "docstring": "Override this method to use a different test_func method.", + "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", + "kwargs": "self", + "line_number": 99 } }, { @@ -2950,16 +2950,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], - "name": "dispatch", + "name": "test_func", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == self.reset_url_token:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, self.reset_url_token)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, *args, **kwargs", - "line_number": 257 + "code": "def test_func(self):\n raise NotImplementedError(\n '{} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "kwargs": "self", + "line_number": 94 } }, { @@ -2967,16 +2967,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "LoginView", "django.contrib.auth.views", "Django", "3.1" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 336 + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n if self.redirect_authenticated_user and self.request.user.is_authenticated:\n redirect_to = self.get_success_url()\n if redirect_to == self.request.path:\n raise ValueError(\n \"Redirection loop for authenticated user detected. Check that \"\n \"your LOGIN_REDIRECT_URL doesn't point to a login page.\"\n )\n return HttpResponseRedirect(redirect_to)\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 51 } }, { @@ -2984,15 +2984,15 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", + "name": "form_valid", + "docstring": "Security check complete. Log the user in.", + "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", "line_number": 90 } }, @@ -3001,16 +3001,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "LoginView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 105 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 95 } }, { @@ -3018,16 +3018,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "form_invalid", - "docstring": "If the form is invalid, render the invalid form.", - "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "kwargs": "self, form", - "line_number": 59 + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "kwargs": "self", + "line_number": 82 } }, { @@ -3040,11 +3040,11 @@ "Django", "3.1" ], - "name": "form_valid", - "docstring": "Security check complete. Log the user in.", - "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 90 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "kwargs": "self", + "line_number": 85 } }, { @@ -3052,16 +3052,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "LoginView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 224 + "name": "get_redirect_url", + "docstring": "Return the user-originating redirect URL if it's safe.", + "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", + "kwargs": "self", + "line_number": 69 } }, { @@ -3069,16 +3069,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 123 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", + "kwargs": "self", + "line_number": 65 } }, { @@ -3086,16 +3086,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LogoutView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 55 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 116 } }, { @@ -3103,16 +3103,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", + "LogoutView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 300 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 154 } }, { @@ -3120,16 +3120,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "LogoutView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 347 + "name": "get_next_page", + "docstring": "", + "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", + "kwargs": "self", + "line_number": 129 } }, { @@ -3137,16 +3137,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", + "name": "post", + "docstring": "Logout may be done via POST.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 298 + "line_number": 125 } }, { @@ -3154,16 +3154,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 188 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 359 } }, { @@ -3171,16 +3171,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "get", + "name": "dispatch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 188 + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 336 } }, { @@ -3188,16 +3188,16 @@ "pk": null, "fields": { "klass": [ - "TemplateView", - "django.views.generic.base", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 158 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 347 } }, { @@ -3205,16 +3205,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 166 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "kwargs": "self", + "line_number": 342 } }, { @@ -3222,16 +3222,16 @@ "pk": null, "fields": { "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "get", + "name": "get_context_data", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 105 + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context.update({\n 'title': self.title,\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 199 } }, { @@ -3239,16 +3239,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 131 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 324 } }, { @@ -3256,33 +3256,16 @@ "pk": null, "fields": { "klass": [ - "BaseListView", - "django.views.generic.list", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "get", + "name": "dispatch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = not self.object_list\n if is_empty:\n raise Http404(_('Empty list and “%(class_name)s.allow_empty” is False.') % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 141 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", - "Django", - "3.1" - ], - "name": "get_allow_empty", - "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", - "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "kwargs": "self", - "line_number": 97 + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == self.reset_url_token:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, self.reset_url_token)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", + "kwargs": "self, *args, **kwargs", + "line_number": 257 } }, { @@ -3290,16 +3273,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "get_allow_future", - "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", - "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", - "kwargs": "self", - "line_number": 240 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 300 } }, { @@ -3307,16 +3290,16 @@ "pk": null, "fields": { "klass": [ - "PasswordContextMixin", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.1" ], "name": "get_context_data", - "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context.update({\n 'title': self.title,\n **(self.extra_context or {})\n })\n return context\n", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", "kwargs": "self, **kwargs", - "line_number": 199 + "line_number": 307 } }, { @@ -3324,16 +3307,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.1" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", - "kwargs": "self, **kwargs", - "line_number": 63 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", + "kwargs": "self", + "line_number": 295 } }, { @@ -3341,16 +3324,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "get_context_data", + "name": "get_user", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 154 + "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", + "kwargs": "self, uidb64", + "line_number": 286 } }, { @@ -3358,16 +3341,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", + "PasswordResetView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "get_context_data", + "name": "dispatch", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 324 + "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 220 } }, { @@ -3375,16 +3358,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordResetView", "django.contrib.auth.views", "Django", "3.1" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 95 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 224 } }, { @@ -3392,16 +3375,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", + "SuccessURLAllowedHostsMixin", "django.contrib.auth.views", "Django", "3.1" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 307 + "name": "get_success_url_allowed_hosts", + "docstring": "", + "code": "def get_success_url_allowed_hosts(self):\n return {self.request.get_host(), *self.success_url_allowed_hosts}\n", + "kwargs": "self", + "line_number": 36 } }, { @@ -3426,16 +3409,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "3.1" ], - "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", - "kwargs": "self, **kwargs", - "line_number": 91 + "name": "delete", + "docstring": "", + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 211 } }, { @@ -3443,16 +3426,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "3.1" ], - "name": "get_context_data", - "docstring": "Get the context for this view.", - "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", - "kwargs": "self, *, object_list=None, **kwargs", - "line_number": 113 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 188 } }, { @@ -3460,16 +3443,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "3.1" ], - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", - "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", - "kwargs": "self, obj", - "line_number": 82 + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", + "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", + "kwargs": "self, *args, **kwargs", + "line_number": 170 } }, { @@ -3477,16 +3460,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "3.1" ], - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", - "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", - "kwargs": "self, object_list", - "line_number": 104 + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 202 } }, { @@ -3494,16 +3477,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "3.1" ], - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", - "kwargs": "self, date", - "line_number": 161 + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 208 } }, { @@ -3511,16 +3494,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "3.1" ], - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", - "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", - "kwargs": "self, date", - "line_number": 115 + "name": "patch", + "docstring": "", + "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 217 } }, { @@ -3528,16 +3511,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "3.1" ], - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "kwargs": "self, date", - "line_number": 210 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 205 } }, { @@ -3545,16 +3528,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "3.1" ], - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", - "kwargs": "self, date", - "line_number": 63 + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 214 } }, { @@ -3562,16 +3545,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.1" ], - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "kwargs": "self, date", - "line_number": 535 + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "kwargs": "self", + "line_number": 141 } }, { @@ -3579,16 +3562,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.1" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", - "kwargs": "self", - "line_number": 523 + "name": "render_to_response", + "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 125 } }, { @@ -3596,16 +3579,16 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "3.1" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", - "kwargs": "self", - "line_number": 447 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 158 } }, { @@ -3613,16 +3596,16 @@ "pk": null, "fields": { "klass": [ - "BaseWeekArchiveView", - "django.views.generic.dates", - "Django", + "View", + "django.views.generic.base", + "Django", "3.1" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_choices = {'%W': '1', '%U': '0'}\n try:\n week_start = week_choices[week_format]\n except KeyError:\n raise ValueError('Unknown week format %r. Choices are: %s' % (\n week_format,\n ', '.join(sorted(week_choices)),\n ))\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", + "name": "_allowed_methods", + "docstring": "", + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", "kwargs": "self", - "line_number": 481 + "line_number": 114 } }, { @@ -3630,16 +3613,16 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.1" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", - "kwargs": "self", - "line_number": 381 + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\n 'The method name %s is not accepted as a keyword argument '\n 'to %s().' % (key, cls.__name__)\n )\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n self.setup(request, *args, **kwargs)\n if not hasattr(self, 'request'):\n raise AttributeError(\n \"%s instance has no 'request' attribute. Did you override \"\n \"setup() and forget to call super()?\" % cls.__name__\n )\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 48 } }, { @@ -3647,16 +3630,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.1" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", - "kwargs": "self", - "line_number": 402 + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 90 } }, { @@ -3664,16 +3647,16 @@ "pk": null, "fields": { "klass": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.1" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n return self._get_dated_items(datetime.date.today())\n", - "kwargs": "self", - "line_number": 560 + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 100 } }, { @@ -3681,16 +3664,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.1" ], - "name": "get_dated_items", - "docstring": "Obtain the list of dates and items.", - "code": "def get_dated_items(self):\n \"\"\"Obtain the list of dates and items.\"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", - "kwargs": "self", - "line_number": 307 + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", + "kwargs": "self, **kwargs", + "line_number": 38 } }, { @@ -3698,16 +3681,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.1" ], - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", - "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = not qs if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n })\n return qs\n", - "kwargs": "self, **lookup", - "line_number": 318 + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 107 } }, { @@ -3715,16 +3698,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.1" ], - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", - "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", - "kwargs": "self", - "line_number": 234 + "name": "setup", + "docstring": "Initialize attributes shared by all view methods.", + "code": "def setup(self, request, *args, **kwargs):\n \"\"\"Initialize attributes shared by all view methods.\"\"\"\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 82 } }, { @@ -3732,16 +3715,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "BaseArchiveIndexView", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", - "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n raise Http404(\n _(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': queryset.model._meta.verbose_name_plural,\n }\n )\n return date_list\n", - "kwargs": "self, queryset, date_type=None, ordering='ASC'", - "line_number": 351 + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", + "kwargs": "self", + "line_number": 381 } }, { @@ -3749,16 +3732,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_date_list_period", - "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or\n'day'.", - "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or\n 'day'.\n \"\"\"\n return self.date_list_period\n", - "kwargs": "self", - "line_number": 344 + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 575 } }, { @@ -3766,16 +3749,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_day", - "docstring": "Return the day for which this view should display data.", - "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", - "kwargs": "self", - "line_number": 132 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 298 } }, { @@ -3783,16 +3766,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", + "name": "get_dated_items", + "docstring": "Obtain the list of dates and items.", + "code": "def get_dated_items(self):\n \"\"\"Obtain the list of dates and items.\"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", "kwargs": "self", - "line_number": 125 + "line_number": 307 } }, { @@ -3800,16 +3783,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_form", - "docstring": "Return an instance of the form to be used in this view.", - "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", - "kwargs": "self, form_class=None", - "line_number": 29 + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = not qs if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n })\n return qs\n", + "kwargs": "self, **lookup", + "line_number": 318 } }, { @@ -3817,16 +3800,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_form_class", - "docstring": "Return the form class to use in this view.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif getattr(self, 'object', None) is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", - "kwargs": "self", - "line_number": 74 + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n raise Http404(\n _(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': queryset.model._meta.verbose_name_plural,\n }\n )\n return date_list\n", + "kwargs": "self, queryset, date_type=None, ordering='ASC'", + "line_number": 351 } }, { @@ -3834,16 +3817,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "name": "get_date_list_period", + "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or\n'day'.", + "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or\n 'day'.\n \"\"\"\n return self.date_list_period\n", "kwargs": "self", - "line_number": 82 + "line_number": 344 } }, { @@ -3851,16 +3834,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", + "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", "kwargs": "self", - "line_number": 25 + "line_number": 311 } }, { @@ -3868,16 +3851,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", - "kwargs": "self", - "line_number": 103 + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 535 } }, { @@ -3885,16 +3868,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", "kwargs": "self", - "line_number": 85 + "line_number": 523 } }, { @@ -3902,16 +3885,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", "kwargs": "self", - "line_number": 342 + "line_number": 447 } }, { @@ -3919,16 +3902,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n return self._get_dated_items(datetime.date.today())\n", "kwargs": "self", - "line_number": 35 + "line_number": 560 } }, { @@ -3936,16 +3919,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_choices = {'%W': '1', '%U': '0'}\n try:\n week_start = week_choices[week_format]\n except KeyError:\n raise ValueError('Unknown week format %r. Choices are: %s' % (\n week_format,\n ', '.join(sorted(week_choices)),\n ))\n date = _date_from_string(year, self.get_year_format(),\n week_start, '%w',\n week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", "kwargs": "self", - "line_number": 295 + "line_number": 481 } }, { @@ -3953,33 +3936,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", - "Django", - "3.1" - ], - "name": "get_initial", - "docstring": "Return the initial data to use for forms on this view.", - "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", - "kwargs": "self", - "line_number": 17 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_login_url", - "docstring": "Override this method to override the login_url attribute.", - "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", "kwargs": "self", - "line_number": 17 + "line_number": 402 } }, { @@ -4004,16 +3970,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DateMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_month", - "docstring": "Return the month for which this view should display data.", - "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "name": "get_allow_future", + "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", "kwargs": "self", - "line_number": 80 + "line_number": 240 } }, { @@ -4021,16 +3987,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DateMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", "kwargs": "self", - "line_number": 73 + "line_number": 234 } }, { @@ -4038,16 +4004,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "DateMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "_get_next_day", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", - "kwargs": "self, date", - "line_number": 153 + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value)\n return value\n", + "kwargs": "self, value", + "line_number": 260 } }, { @@ -4055,16 +4021,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "DateMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_next_day", - "docstring": "Get the next valid day.", - "code": "def get_next_day(self, date):\n \"\"\"Get the next valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", "kwargs": "self, date", - "line_number": 145 + "line_number": 273 } }, { @@ -4072,16 +4038,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "_get_next_month", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", "kwargs": "self, date", - "line_number": 101 + "line_number": 161 } }, { @@ -4089,16 +4055,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_next_month", - "docstring": "Get the next valid month.", - "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", - "kwargs": "self, date", - "line_number": 93 + "name": "get_day", + "docstring": "Return the day for which this view should display data.", + "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "kwargs": "self", + "line_number": 132 } }, { @@ -4106,16 +4072,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_next_page", - "docstring": "", - "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", "kwargs": "self", - "line_number": 129 + "line_number": 125 } }, { @@ -4123,16 +4089,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "DayMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "_get_next_week", + "name": "_get_next_day", "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", "kwargs": "self, date", - "line_number": 199 + "line_number": 153 } }, { @@ -4140,16 +4106,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "DayMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_next_week", - "docstring": "Get the next valid week.", - "code": "def get_next_week(self, date):\n \"\"\"Get the next valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"Get the next valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", "kwargs": "self, date", - "line_number": 191 + "line_number": 145 } }, { @@ -4157,16 +4123,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "DayMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "_get_next_year", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", "kwargs": "self, date", - "line_number": 52 + "line_number": 149 } }, { @@ -4174,16 +4140,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_next_year", - "docstring": "Get the next valid year.", - "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", "kwargs": "self, date", - "line_number": 44 + "line_number": 115 } }, { @@ -4191,16 +4157,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateDetailView", + "MonthMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_object", - "docstring": "Get the object this request displays.", - "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", - "kwargs": "self, queryset=None", - "line_number": 575 + "name": "get_month", + "docstring": "Return the month for which this view should display data.", + "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "kwargs": "self", + "line_number": 80 } }, { @@ -4208,16 +4174,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_object", - "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\n \"Generic detail view %s must be called with either an object \"\n \"pk or a slug in the URLconf.\" % self.__class__.__name__\n )\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "kwargs": "self, queryset=None", - "line_number": 20 + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "kwargs": "self", + "line_number": 73 } }, { @@ -4225,16 +4191,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset.", - "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", - "kwargs": "self", - "line_number": 50 + "name": "_get_next_month", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "kwargs": "self, date", + "line_number": 101 } }, { @@ -4242,16 +4208,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "MonthMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", - "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", - "kwargs": "self", - "line_number": 311 + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "kwargs": "self, date", + "line_number": 93 } }, { @@ -4259,16 +4225,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "kwargs": "self, queryset", - "line_number": 77 + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "kwargs": "self, date", + "line_number": 97 } }, { @@ -4276,16 +4242,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_paginate_orphans", - "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", - "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", - "kwargs": "self", - "line_number": 90 + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", + "kwargs": "self, date", + "line_number": 210 } }, { @@ -4293,16 +4259,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", - "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", - "line_number": 83 + "name": "_get_next_week", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "kwargs": "self, date", + "line_number": 199 } }, { @@ -4310,16 +4276,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_permission_denied_message", - "docstring": "Override this method to override the permission_denied_message attribute.", - "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", - "kwargs": "self", - "line_number": 29 + "name": "get_next_week", + "docstring": "Get the next valid week.", + "code": "def get_next_week(self, date):\n \"\"\"Get the next valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "kwargs": "self, date", + "line_number": 191 } }, { @@ -4327,16 +4293,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_permission_required", - "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", - "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required,)\n else:\n perms = self.permission_required\n return perms\n", - "kwargs": "self", - "line_number": 59 + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "kwargs": "self, date", + "line_number": 195 } }, { @@ -4344,16 +4310,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "WeekMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_prefix", - "docstring": "Return the prefix to use for forms.", - "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", + "name": "get_week", + "docstring": "Return the week for which this view should display data.", + "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", "kwargs": "self", - "line_number": 21 + "line_number": 178 } }, { @@ -4361,16 +4327,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "WeekMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_previous_day", - "docstring": "Get the previous valid day.", - "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", "kwargs": "self, date", - "line_number": 149 + "line_number": 214 } }, { @@ -4378,16 +4344,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "WeekMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_previous_month", - "docstring": "Get the previous valid month.", - "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", - "kwargs": "self, date", - "line_number": 97 + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "kwargs": "self", + "line_number": 171 } }, { @@ -4395,16 +4361,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "YearMixin", "django.views.generic.dates", "Django", "3.1" ], - "name": "get_previous_week", - "docstring": "Get the previous valid week.", - "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", "kwargs": "self, date", - "line_number": 195 + "line_number": 63 } }, { @@ -4417,11 +4383,11 @@ "Django", "3.1" ], - "name": "get_previous_year", - "docstring": "Get the previous valid year.", - "code": "def get_previous_year(self, date):\n \"\"\"Get the previous valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", + "name": "_get_next_year", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", "kwargs": "self, date", - "line_number": 48 + "line_number": 52 } }, { @@ -4429,16 +4395,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_queryset", - "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", - "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", - "kwargs": "self", - "line_number": 21 + "name": "get_next_year", + "docstring": "Get the next valid year.", + "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", + "kwargs": "self, date", + "line_number": 44 } }, { @@ -4446,16 +4412,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_queryset", - "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", - "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", - "kwargs": "self", - "line_number": 58 + "name": "get_previous_year", + "docstring": "Get the previous valid year.", + "code": "def get_previous_year(self, date):\n \"\"\"Get the previous valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", + "kwargs": "self, date", + "line_number": 48 } }, { @@ -4463,33 +4429,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "YearMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_redirect_field_name", - "docstring": "Override this method to override the redirect_field_name attribute.", - "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", "kwargs": "self", - "line_number": 35 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "RedirectView", - "django.views.generic.base", - "Django", - "3.1" - ], - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", - "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", - "kwargs": "self, *args, **kwargs", - "line_number": 170 + "line_number": 31 } }, { @@ -4497,16 +4446,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "3.1" ], - "name": "get_redirect_url", - "docstring": "Return the user-originating redirect URL if it's safe.", - "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", "kwargs": "self", - "line_number": 69 + "line_number": 24 } }, { @@ -4514,16 +4463,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", + "BaseDetailView", "django.views.generic.detail", "Django", "3.1" ], - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", - "code": "def get_slug_field(self):\n \"\"\"Get the name of a slug field to be used to look up by slug.\"\"\"\n return self.slug_field\n", - "kwargs": "self", - "line_number": 78 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 105 } }, { @@ -4531,16 +4480,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], - "name": "get_success_url", - "docstring": "", - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", - "kwargs": "self", - "line_number": 220 + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 91 } }, { @@ -4548,16 +4497,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", - "kwargs": "self", - "line_number": 65 + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 82 } }, { @@ -4565,16 +4514,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", - "kwargs": "self", - "line_number": 49 + "name": "get_object", + "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\n \"Generic detail view %s must be called with either an object \"\n \"pk or a slug in the URLconf.\" % self.__class__.__name__\n )\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 20 } }, { @@ -4582,16 +4531,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "name": "get_queryset", + "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", "kwargs": "self", - "line_number": 110 + "line_number": 58 } }, { @@ -4599,16 +4548,16 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], - "name": "get_success_url_allowed_hosts", - "docstring": "", - "code": "def get_success_url_allowed_hosts(self):\n return {self.request.get_host(), *self.success_url_allowed_hosts}\n", + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"Get the name of a slug field to be used to look up by slug.\"\"\"\n return self.slug_field\n", "kwargs": "self", - "line_number": 36 + "line_number": 78 } }, { @@ -4633,16 +4582,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseCreateView", + "django.views.generic.edit", "Django", "3.1" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n elif not names:\n raise ImproperlyConfigured(\n \"%(cls)s requires either a 'template_name' attribute \"\n \"or a get_queryset() method that returns a QuerySet.\" % {\n 'cls': self.__class__.__name__,\n }\n )\n return names\n", - "kwargs": "self", - "line_number": 165 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 166 } }, { @@ -4650,16 +4599,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseCreateView", + "django.views.generic.edit", "Django", "3.1" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "kwargs": "self", - "line_number": 141 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 170 } }, { @@ -4667,16 +4616,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.1" ], - "name": "get_test_func", - "docstring": "Override this method to use a different test_func method.", - "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", - "kwargs": "self", - "line_number": 99 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 188 } }, { @@ -4684,16 +4633,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.1" ], - "name": "get_user", - "docstring": "", - "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", - "kwargs": "self, uidb64", - "line_number": 286 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 192 } }, { @@ -4701,16 +4650,33 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "get_week", - "docstring": "Return the week for which this view should display data.", - "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", + "name": "delete", + "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 206 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "DeletionMixin", + "django.views.generic.edit", + "Django", + "3.1" + ], + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", "kwargs": "self", - "line_number": 178 + "line_number": 220 } }, { @@ -4718,16 +4684,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format == '%W': # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "kwargs": "self, date", - "line_number": 214 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 217 } }, { @@ -4735,16 +4701,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", - "kwargs": "self", - "line_number": 171 + "name": "form_invalid", + "docstring": "If the form is invalid, render the invalid form.", + "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 59 } }, { @@ -4752,16 +4718,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "get_year", - "docstring": "Return the year for which this view should display data.", - "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", - "kwargs": "self", - "line_number": 31 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 55 } }, { @@ -4769,16 +4735,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", - "kwargs": "self", - "line_number": 24 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", + "kwargs": "self, **kwargs", + "line_number": 63 } }, { @@ -4786,16 +4752,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "handle_no_permission", - "docstring": "", - "code": "def handle_no_permission(self):\n if self.raise_exception or self.request.user.is_authenticated:\n raise PermissionDenied(self.get_permission_denied_message())\n return redirect_to_login(self.request.get_full_path(), self.get_login_url(), self.get_redirect_field_name())\n", - "kwargs": "self", - "line_number": 41 + "name": "get_form", + "docstring": "Return an instance of the form to be used in this view.", + "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class=None", + "line_number": 29 } }, { @@ -4803,16 +4769,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "has_permission", - "docstring": "Override this method to customize the way permissions are checked.", - "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", "kwargs": "self", - "line_number": 75 + "line_number": 25 } }, { @@ -4820,16 +4786,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "head", - "docstring": "", - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 202 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "kwargs": "self", + "line_number": 35 } }, { @@ -4837,16 +4803,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "http_method_not_allowed", - "docstring": "", - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 100 + "name": "get_initial", + "docstring": "Return the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", + "kwargs": "self", + "line_number": 17 } }, { @@ -4854,16 +4820,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", - "kwargs": "self, **kwargs", - "line_number": 38 + "name": "get_prefix", + "docstring": "Return the prefix to use for forms.", + "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", + "kwargs": "self", + "line_number": 21 } }, { @@ -4871,16 +4837,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value)\n return value\n", - "kwargs": "self, value", - "line_number": 260 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", + "kwargs": "self", + "line_number": 49 } }, { @@ -4888,16 +4854,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "kwargs": "self, date", - "line_number": 273 + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 123 } }, { @@ -4905,16 +4871,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 208 + "name": "get_form_class", + "docstring": "Return the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif getattr(self, 'object', None) is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "kwargs": "self", + "line_number": 74 } }, { @@ -4922,16 +4888,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response['Allow'] = ', '.join(self._allowed_methods())\n response['Content-Length'] = '0'\n return response\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 107 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 103 } }, { @@ -4939,16 +4905,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_('Page is not “last”, nor can it be converted to an int.'))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", - "kwargs": "self, queryset, page_size", - "line_number": 54 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 110 } }, { @@ -4956,16 +4922,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.1" ], - "name": "patch", - "docstring": "", - "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 217 + "line_number": 131 } }, { @@ -4990,16 +4956,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.1" ], - "name": "post", + "name": "put", "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 205 + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 148 } }, { @@ -5007,16 +4973,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "BaseListView", + "django.views.generic.list", "Django", "3.1" ], - "name": "post", + "name": "get", "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = not self.object_list\n if is_empty:\n raise Http404(_('Empty list and “%(class_name)s.allow_empty” is False.') % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 217 + "line_number": 141 } }, { @@ -5024,16 +4990,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "post", - "docstring": "Logout may be done via POST.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 125 + "name": "get_allow_empty", + "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 97 } }, { @@ -5041,16 +5007,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 170 + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, *, object_list=None, **kwargs", + "line_number": 113 } }, { @@ -5058,16 +5024,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 192 + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 104 } }, { @@ -5075,16 +5041,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "put", - "docstring": "", - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 148 + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset.", + "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", + "kwargs": "self", + "line_number": 50 } }, { @@ -5092,16 +5058,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "put", - "docstring": "", - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 214 + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 77 } }, { @@ -5109,16 +5075,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "render_to_response", - "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", - "kwargs": "self, context, **response_kwargs", - "line_number": 125 + "name": "get_paginate_orphans", + "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", + "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "kwargs": "self", + "line_number": 90 } }, { @@ -5126,16 +5092,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "setup", - "docstring": "Initialize attributes shared by all view methods.", - "code": "def setup(self, request, *args, **kwargs):\n \"\"\"Initialize attributes shared by all view methods.\"\"\"\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 82 + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", + "line_number": 83 } }, { @@ -5143,35 +5109,50 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "name": "test_func", - "docstring": "", - "code": "def test_func(self):\n raise NotImplementedError(\n '{} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "name": "get_queryset", + "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", + "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", "kwargs": "self", - "line_number": 94 + "line_number": 21 } }, { - "model": "cbv.inheritance", + "model": "cbv.method", "pk": null, "fields": { - "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "klass": [ + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "child": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_('Page is not “last”, nor can it be converted to an int.'))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 54 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.1" ], - "order": 0 + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n elif not names:\n raise ImproperlyConfigured(\n \"%(cls)s requires either a 'template_name' attribute \"\n \"or a get_queryset() method that returns a QuerySet.\" % {\n 'cls': self.__class__.__name__,\n }\n )\n return names\n", + "kwargs": "self", + "line_number": 165 } }, { @@ -5179,14 +5160,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], @@ -5198,14 +5179,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], "child": [ - "FormView", - "django.views.generic.edit", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], @@ -5217,14 +5198,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "3.1" ], @@ -5236,14 +5217,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "3.1" ], "child": [ - "RedirectView", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "3.1" ], @@ -5255,18 +5236,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "FormView", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5274,14 +5255,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "3.1" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "LogoutView", + "django.contrib.auth.views", "Django", "3.1" ], @@ -5293,18 +5274,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", + "TemplateView", "django.views.generic.base", "Django", "3.1" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "LogoutView", + "django.contrib.auth.views", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5312,14 +5293,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.1" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.1" ], @@ -5331,18 +5312,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "3.1" ], "child": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5350,14 +5331,14 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.1" ], "child": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.1" ], @@ -5369,18 +5350,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5388,14 +5369,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.1" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "3.1" ], @@ -5407,18 +5388,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "3.1" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5426,14 +5407,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.1" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.1" ], @@ -5445,18 +5426,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5464,14 +5445,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.1" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "3.1" ], @@ -5483,18 +5464,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "3.1" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5502,14 +5483,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.1" ], "child": [ - "DetailView", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.1" ], @@ -5521,18 +5502,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormView", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "CreateView", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5540,14 +5521,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "3.1" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "3.1" ], @@ -5559,14 +5540,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.1" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "3.1" ], @@ -5578,18 +5559,18 @@ "pk": null, "fields": { "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "3.1" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5597,18 +5578,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "3.1" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "3.1" ], - "order": 0 + "order": 2 } }, { @@ -5616,14 +5597,14 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.1" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "3.1" ], @@ -5635,18 +5616,18 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5654,14 +5635,14 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "3.1" ], @@ -5673,13 +5654,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "BaseDateListView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "3.1" @@ -5692,18 +5673,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5711,18 +5692,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DayMixin", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "ArchiveIndexView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 2 } }, { @@ -5730,18 +5711,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DateMixin", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "DayArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 3 } }, { @@ -5749,18 +5730,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDetailView", + "django.views.generic.detail", "Django", "3.1" ], "child": [ - "MonthArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 4 } }, { @@ -5768,13 +5749,13 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", + "MultipleObjectMixin", "django.views.generic.list", "Django", "3.1" ], "child": [ - "TodayArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "3.1" @@ -5787,18 +5768,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DateMixin", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "WeekArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5806,18 +5787,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "3.1" ], "child": [ - "YearArchiveView", + "BaseDateListView", "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 2 } }, { @@ -5825,14 +5806,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], @@ -5844,18 +5825,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5863,18 +5844,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 2 } }, { @@ -5882,18 +5863,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 3 } }, { @@ -5901,14 +5882,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.1" ], @@ -5920,18 +5901,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -5939,18 +5920,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 2 } }, { @@ -5958,14 +5939,14 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], @@ -5977,14 +5958,14 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "3.1" ], @@ -5996,18 +5977,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 1 } }, { @@ -6015,18 +5996,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "order": 0 + "order": 2 } }, { @@ -6034,14 +6015,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "TemplateView", - "django.views.generic.base", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.1" ], @@ -6053,14 +6034,14 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.1" ], @@ -6072,18 +6053,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.1" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "DateDetailView", + "django.views.generic.dates", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6091,14 +6072,14 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "DateDetailView", + "django.views.generic.dates", "Django", "3.1" ], @@ -6110,18 +6091,18 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.1" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6129,13 +6110,13 @@ "pk": null, "fields": { "parent": [ - "BaseDateDetailView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "3.1" ], "child": [ - "DateDetailView", + "DayArchiveView", "django.views.generic.dates", "Django", "3.1" @@ -6148,8 +6129,8 @@ "pk": null, "fields": { "parent": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.1" ], @@ -6159,7 +6140,7 @@ "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6167,13 +6148,13 @@ "pk": null, "fields": { "parent": [ - "BaseWeekArchiveView", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "3.1" ], "child": [ - "WeekArchiveView", + "MonthArchiveView", "django.views.generic.dates", "Django", "3.1" @@ -6186,18 +6167,18 @@ "pk": null, "fields": { "parent": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.1" ], "child": [ - "BaseWeekArchiveView", + "TodayArchiveView", "django.views.generic.dates", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6205,14 +6186,14 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "TodayArchiveView", + "django.views.generic.dates", "Django", "3.1" ], @@ -6224,18 +6205,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.1" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "WeekArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6243,14 +6224,14 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "WeekArchiveView", + "django.views.generic.dates", "Django", "3.1" ], @@ -6262,18 +6243,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.1" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "YearArchiveView", + "django.views.generic.dates", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6281,14 +6262,14 @@ "pk": null, "fields": { "parent": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.1" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "YearArchiveView", + "django.views.generic.dates", "Django", "3.1" ], @@ -6300,18 +6281,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseDetailView", + "django.views.generic.detail", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6319,14 +6300,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", + "View", "django.views.generic.base", "Django", "3.1" ], "child": [ - "TemplateView", - "django.views.generic.base", + "BaseDetailView", + "django.views.generic.detail", "Django", "3.1" ], @@ -6338,18 +6319,18 @@ "pk": null, "fields": { "parent": [ - "BaseUpdateView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.1" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "DetailView", + "django.views.generic.detail", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6376,18 +6357,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", + "ContextMixin", "django.views.generic.base", "Django", "3.1" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6395,18 +6376,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", + "TemplateResponseMixin", "django.views.generic.base", "Django", "3.1" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6414,18 +6395,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "BaseCreateView", + "django.views.generic.edit", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6433,14 +6414,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "BaseCreateView", + "django.views.generic.edit", "Django", "3.1" ], @@ -6452,18 +6433,18 @@ "pk": null, "fields": { "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6490,18 +6471,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6509,13 +6490,13 @@ "pk": null, "fields": { "parent": [ - "BaseCreateView", + "ProcessFormView", "django.views.generic.edit", "Django", "3.1" ], "child": [ - "CreateView", + "BaseFormView", "django.views.generic.edit", "Django", "3.1" @@ -6528,18 +6509,18 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6547,14 +6528,14 @@ "pk": null, "fields": { "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.1" ], @@ -6566,18 +6547,18 @@ "pk": null, "fields": { "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.1" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6585,14 +6566,14 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "3.1" ], @@ -6604,18 +6585,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.1" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6623,14 +6604,14 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "3.1" ], @@ -6642,18 +6623,37 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "3.1" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "order": 1 + "order": 0 + } +}, +{ + "model": "cbv.inheritance", + "pk": null, + "fields": { + "parent": [ + "TemplateResponseMixin", + "django.views.generic.base", + "Django", + "3.1" + ], + "child": [ + "FormView", + "django.views.generic.edit", + "Django", + "3.1" + ], + "order": 0 } }, { @@ -6680,18 +6680,18 @@ "pk": null, "fields": { "parent": [ - "BaseListView", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "ListView", - "django.views.generic.list", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.1" ], - "order": 1 + "order": 0 } }, { @@ -6699,14 +6699,14 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.1" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.1" ], @@ -6724,12 +6724,12 @@ "3.1" ], "child": [ - "TemplateView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.1" ], - "order": 2 + "order": 0 } }, { @@ -6737,18 +6737,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.1" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "3.1" ], - "order": 2 + "order": 0 } }, { @@ -6756,18 +6756,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.1" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "3.1" ], - "order": 2 + "order": 1 } }, { @@ -6775,18 +6775,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "3.1" ], - "order": 2 + "order": 0 } }, { @@ -6794,18 +6794,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.1" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "3.1" ], - "order": 2 + "order": 1 } }, { @@ -6813,18 +6813,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.1" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "3.1" ], - "order": 2 + "order": 0 } }, { @@ -6832,18 +6832,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "3.1" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "3.1" ], - "order": 3 + "order": 1 } }, { @@ -6851,18 +6851,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "3.1" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.1" ], - "order": 3 + "order": 0 } }, { @@ -6870,18 +6870,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.1" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.1" ], - "order": 4 + "order": 0 } } ] diff --git a/cbv/fixtures/3.2.json b/cbv/fixtures/3.2.json index 0c34cd82..15f536f6 100644 --- a/cbv/fixtures/3.2.json +++ b/cbv/fixtures/3.2.json @@ -16,9 +16,9 @@ "Django", "3.2" ], - "name": "django.views.generic", + "name": "django.contrib.auth.mixins", "docstring": "", - "filename": "/django/views/generic/__init__.py" + "filename": "/django/contrib/auth/mixins.py" } }, { @@ -28,9 +28,9 @@ "Django", "3.2" ], - "name": "django.views.generic.base", + "name": "django.contrib.auth.views", "docstring": "", - "filename": "/django/views/generic/base.py" + "filename": "/django/contrib/auth/views.py" } }, { @@ -40,9 +40,9 @@ "Django", "3.2" ], - "name": "django.views.generic.dates", + "name": "django.views.generic", "docstring": "", - "filename": "/django/views/generic/dates.py" + "filename": "/django/views/generic/__init__.py" } }, { @@ -52,9 +52,9 @@ "Django", "3.2" ], - "name": "django.views.generic.detail", + "name": "django.views.generic.base", "docstring": "", - "filename": "/django/views/generic/detail.py" + "filename": "/django/views/generic/base.py" } }, { @@ -64,9 +64,9 @@ "Django", "3.2" ], - "name": "django.views.generic.edit", + "name": "django.views.generic.dates", "docstring": "", - "filename": "/django/views/generic/edit.py" + "filename": "/django/views/generic/dates.py" } }, { @@ -76,9 +76,9 @@ "Django", "3.2" ], - "name": "django.views.generic.list", + "name": "django.views.generic.detail", "docstring": "", - "filename": "/django/views/generic/list.py" + "filename": "/django/views/generic/detail.py" } }, { @@ -88,9 +88,9 @@ "Django", "3.2" ], - "name": "django.contrib.auth.views", + "name": "django.views.generic.edit", "docstring": "", - "filename": "/django/contrib/auth/views.py" + "filename": "/django/views/generic/edit.py" } }, { @@ -100,9 +100,9 @@ "Django", "3.2" ], - "name": "django.contrib.auth.mixins", + "name": "django.views.generic.list", "docstring": "", - "filename": "/django/contrib/auth/mixins.py" + "filename": "/django/views/generic/list.py" } }, { @@ -1010,13 +1010,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "__cause__", - "value": "", + "name": "login_url", + "value": "None", "line_number": -1 } }, @@ -1025,13 +1025,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "__context__", - "value": "", + "name": "permission_denied_message", + "value": "''", "line_number": -1 } }, @@ -1040,13 +1040,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "__delattr__", - "value": "", + "name": "raise_exception", + "value": "False", "line_number": -1 } }, @@ -1055,13 +1055,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "__getattribute__", - "value": "", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1070,13 +1070,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "__init__", - "value": "", + "name": "permission_required", + "value": "None", "line_number": -1 } }, @@ -1085,13 +1085,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "__reduce__", - "value": "", + "name": "authentication_form", + "value": "None", "line_number": -1 } }, @@ -1100,14 +1100,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "__repr__", - "value": "", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 160 } }, { @@ -1115,13 +1115,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "__setattr__", - "value": "", + "name": "redirect_authenticated_user", + "value": "False", "line_number": -1 } }, @@ -1130,13 +1130,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "__setstate__", - "value": "", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1145,13 +1145,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "__str__", - "value": "", + "name": "template_name", + "value": "'registration/login.html'", "line_number": -1 } }, @@ -1160,13 +1160,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LogoutView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "__suppress_context__", - "value": "", + "name": "next_page", + "value": "None", "line_number": -1 } }, @@ -1175,13 +1175,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LogoutView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "__traceback__", - "value": "", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1190,13 +1190,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "allow_empty", - "value": "False", + "name": "template_name", + "value": "'registration/logged_out.html'", "line_number": -1 } }, @@ -1205,13 +1205,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "allow_empty", - "value": "True", + "name": "template_name", + "value": "'registration/password_change_done.html'", "line_number": -1 } }, @@ -1220,13 +1220,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "allow_future", - "value": "False", + "name": "title", + "value": "gettext_lazy('Password change successful')", "line_number": -1 } }, @@ -1235,14 +1235,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "args", - "value": "", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 360 } }, { @@ -1250,13 +1250,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordChangeView", "django.contrib.auth.views", "Django", "3.2" ], - "name": "authentication_form", - "value": "None", + "name": "success_url", + "value": "reverse_lazy('password_change_done')", "line_number": -1 } }, @@ -1265,13 +1265,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "content_type", - "value": "None", + "name": "template_name", + "value": "'registration/password_change_form.html'", "line_number": -1 } }, @@ -1280,13 +1280,13 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "context_object_name", - "value": "'latest'", + "name": "title", + "value": "gettext_lazy('Password change')", "line_number": -1 } }, @@ -1295,12 +1295,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "context_object_name", + "name": "extra_context", "value": "None", "line_number": -1 } @@ -1310,13 +1310,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "context_object_name", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_complete.html'", "line_number": -1 } }, @@ -1325,13 +1325,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "date_field", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password reset complete')", "line_number": -1 } }, @@ -1340,14 +1340,14 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "date_list_period", - "value": "'year'", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 316 } }, { @@ -1355,13 +1355,13 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "date_list_period", - "value": "'day'", + "name": "post_reset_login", + "value": "False", "line_number": -1 } }, @@ -1370,13 +1370,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "date_list_period", - "value": "'month'", + "name": "post_reset_login_backend", + "value": "None", "line_number": -1 } }, @@ -1385,13 +1385,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "day", - "value": "None", + "name": "reset_url_token", + "value": "'set-password'", "line_number": -1 } }, @@ -1400,13 +1400,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "day_format", - "value": "'%d'", + "name": "success_url", + "value": "reverse_lazy('password_reset_complete')", "line_number": -1 } }, @@ -1415,13 +1415,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.2" ], - "name": "email_template_name", - "value": "'registration/password_reset_email.html'", + "name": "template_name", + "value": "'registration/password_reset_confirm.html'", "line_number": -1 } }, @@ -1430,28 +1430,13 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", - "django.views.generic.base", - "Django", - "3.2" - ], - "name": "extra_context", - "value": "None", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "PasswordContextMixin", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.2" ], - "name": "extra_context", - "value": "None", + "name": "title", + "value": "gettext_lazy('Enter new password')", "line_number": -1 } }, @@ -1460,28 +1445,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.2" ], - "name": "extra_email_context", - "value": "None", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "ModelFormMixin", - "django.views.generic.edit", - "Django", - "3.2" - ], - "name": "fields", - "value": "None", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1490,13 +1460,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "form_class", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_done.html'", "line_number": -1 } }, @@ -1505,14 +1475,14 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordResetDoneView", "django.contrib.auth.views", "Django", "3.2" ], - "name": "form_class", - "value": "", - "line_number": 160 + "name": "title", + "value": "gettext_lazy('Password reset sent')", + "line_number": -1 } }, { @@ -1520,14 +1490,14 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "PasswordResetView", "django.contrib.auth.views", "Django", "3.2" ], - "name": "form_class", - "value": "", - "line_number": 360 + "name": "email_template_name", + "value": "'registration/password_reset_email.html'", + "line_number": -1 } }, { @@ -1535,14 +1505,14 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", + "PasswordResetView", "django.contrib.auth.views", "Django", "3.2" ], - "name": "form_class", - "value": "", - "line_number": 316 + "name": "extra_email_context", + "value": "None", + "line_number": -1 } }, { @@ -1595,13 +1565,13 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "http_method_names", - "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "name": "subject_template_name", + "value": "'registration/password_reset_subject.txt'", "line_number": -1 } }, @@ -1610,13 +1580,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "initial", - "value": "{}", + "name": "success_url", + "value": "reverse_lazy('password_reset_done')", "line_number": -1 } }, @@ -1625,13 +1595,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "login_url", - "value": "None", + "name": "template_name", + "value": "'registration/password_reset_form.html'", "line_number": -1 } }, @@ -1640,13 +1610,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "make_object_list", - "value": "False", + "name": "title", + "value": "gettext_lazy('Password reset')", "line_number": -1 } }, @@ -1655,13 +1625,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "model", - "value": "None", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1670,13 +1640,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "model", - "value": "None", + "name": "success_url_allowed_hosts", + "value": "set()", "line_number": -1 } }, @@ -1685,13 +1655,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "month", - "value": "None", + "name": "args", + "value": "", "line_number": -1 } }, @@ -1700,13 +1670,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "month_format", - "value": "'%b'", + "name": "__cause__", + "value": "", "line_number": -1 } }, @@ -1715,13 +1685,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "next_page", - "value": "None", + "name": "__context__", + "value": "", "line_number": -1 } }, @@ -1730,13 +1700,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "ordering", - "value": "None", + "name": "__delattr__", + "value": "", "line_number": -1 } }, @@ -1745,13 +1715,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "page_kwarg", - "value": "'page'", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -1760,13 +1730,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "paginate_by", - "value": "None", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -1775,13 +1745,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "paginate_orphans", - "value": "0", + "name": "__reduce__", + "value": "", "line_number": -1 } }, @@ -1790,14 +1760,14 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "paginator_class", - "value": "", - "line_number": 27 + "name": "__repr__", + "value": "", + "line_number": -1 } }, { @@ -1805,13 +1775,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "pattern_name", - "value": "None", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -1820,13 +1790,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "permanent", - "value": "False", + "name": "__setstate__", + "value": "", "line_number": -1 } }, @@ -1835,13 +1805,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "permission_denied_message", - "value": "''", + "name": "__str__", + "value": "", "line_number": -1 } }, @@ -1850,13 +1820,13 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "permission_required", - "value": "None", + "name": "__suppress_context__", + "value": "", "line_number": -1 } }, @@ -1865,13 +1835,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "pk_url_kwarg", - "value": "'pk'", + "name": "__traceback__", + "value": "", "line_number": -1 } }, @@ -1880,13 +1850,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "3.2" ], - "name": "post_reset_login", - "value": "False", + "name": "with_traceback", + "value": "", "line_number": -1 } }, @@ -1895,12 +1865,12 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "ContextMixin", + "django.views.generic.base", "Django", "3.2" ], - "name": "post_reset_login_backend", + "name": "extra_context", "value": "None", "line_number": -1 } @@ -1910,12 +1880,12 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "3.2" ], - "name": "prefix", + "name": "pattern_name", "value": "None", "line_number": -1 } @@ -1925,12 +1895,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "3.2" ], - "name": "query_pk_and_slug", + "name": "permanent", "value": "False", "line_number": -1 } @@ -1955,12 +1925,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "3.2" ], - "name": "queryset", + "name": "url", "value": "None", "line_number": -1 } @@ -1970,12 +1940,12 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.2" ], - "name": "queryset", + "name": "content_type", "value": "None", "line_number": -1 } @@ -1985,14 +1955,14 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.2" ], - "name": "raise_exception", - "value": "False", - "line_number": -1 + "name": "response_class", + "value": "", + "line_number": 138 } }, { @@ -2000,13 +1970,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.2" ], - "name": "redirect_authenticated_user", - "value": "False", + "name": "template_engine", + "value": "None", "line_number": -1 } }, @@ -2015,13 +1985,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.2" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "template_name", + "value": "None", "line_number": -1 } }, @@ -2030,13 +2000,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "View", + "django.views.generic.base", "Django", "3.2" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "http_method_names", + "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", "line_number": -1 } }, @@ -2045,13 +2015,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "3.2" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "template_name_suffix", + "value": "'_archive'", "line_number": -1 } }, @@ -2060,13 +2030,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "3.2" ], - "name": "reset_url_token", - "value": "'set-password'", + "name": "context_object_name", + "value": "'latest'", "line_number": -1 } }, @@ -2075,14 +2045,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.2" ], - "name": "response_class", - "value": "", - "line_number": 138 + "name": "allow_empty", + "value": "False", + "line_number": -1 } }, { @@ -2090,13 +2060,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.2" ], - "name": "slug_field", - "value": "'slug'", + "name": "date_list_period", + "value": "'year'", "line_number": -1 } }, @@ -2105,13 +2075,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "name": "slug_url_kwarg", - "value": "'slug'", + "name": "date_list_period", + "value": "'day'", "line_number": -1 } }, @@ -2120,13 +2090,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "name": "subject_template_name", - "value": "'registration/password_reset_subject.txt'", + "name": "date_list_period", + "value": "'month'", "line_number": -1 } }, @@ -2135,13 +2105,13 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "name": "success_url", - "value": "None", + "name": "make_object_list", + "value": "False", "line_number": -1 } }, @@ -2150,13 +2120,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "success_url", - "value": "None", + "name": "allow_future", + "value": "False", "line_number": -1 } }, @@ -2165,13 +2135,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "success_url", - "value": "reverse_lazy('password_change_done')", + "name": "date_field", + "value": "None", "line_number": -1 } }, @@ -2180,13 +2150,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_complete')", + "name": "uses_datetime_field", + "value": "", "line_number": -1 } }, @@ -2195,13 +2165,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "DayArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_done')", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2210,13 +2180,13 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "success_url_allowed_hosts", - "value": "set()", + "name": "day", + "value": "None", "line_number": -1 } }, @@ -2225,13 +2195,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DayMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "template_engine", - "value": "None", + "name": "day_format", + "value": "'%d'", "line_number": -1 } }, @@ -2240,13 +2210,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MonthArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "name": "template_name", - "value": "None", + "name": "template_name_suffix", + "value": "'_archive_month'", "line_number": -1 } }, @@ -2255,13 +2225,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "template_name", - "value": "'registration/login.html'", + "name": "month", + "value": "None", "line_number": -1 } }, @@ -2270,13 +2240,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "template_name", - "value": "'registration/logged_out.html'", + "name": "month_format", + "value": "'%b'", "line_number": -1 } }, @@ -2285,13 +2255,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "TodayArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "name": "template_name", - "value": "'registration/password_change_done.html'", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2300,13 +2270,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "name": "template_name", - "value": "'registration/password_change_form.html'", + "name": "template_name_suffix", + "value": "'_archive_week'", "line_number": -1 } }, @@ -2315,13 +2285,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "template_name", - "value": "'registration/password_reset_complete.html'", + "name": "week", + "value": "None", "line_number": -1 } }, @@ -2330,13 +2300,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "template_name", - "value": "'registration/password_reset_confirm.html'", + "name": "week_format", + "value": "'%U'", "line_number": -1 } }, @@ -2345,13 +2315,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "YearArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "name": "template_name", - "value": "'registration/password_reset_done.html'", + "name": "template_name_suffix", + "value": "'_archive_year'", "line_number": -1 } }, @@ -2360,13 +2330,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "template_name", - "value": "'registration/password_reset_form.html'", + "name": "year", + "value": "None", "line_number": -1 } }, @@ -2375,13 +2345,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "template_name_field", - "value": "None", + "name": "year_format", + "value": "'%Y'", "line_number": -1 } }, @@ -2390,13 +2360,13 @@ "pk": null, "fields": { "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.2" ], - "name": "template_name_suffix", - "value": "'_archive'", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -2405,13 +2375,13 @@ "pk": null, "fields": { "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.2" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2420,13 +2390,13 @@ "pk": null, "fields": { "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.2" ], - "name": "template_name_suffix", - "value": "'_archive_month'", + "name": "pk_url_kwarg", + "value": "'pk'", "line_number": -1 } }, @@ -2435,13 +2405,13 @@ "pk": null, "fields": { "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.2" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "query_pk_and_slug", + "value": "False", "line_number": -1 } }, @@ -2450,13 +2420,13 @@ "pk": null, "fields": { "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.2" ], - "name": "template_name_suffix", - "value": "'_archive_week'", + "name": "queryset", + "value": "None", "line_number": -1 } }, @@ -2465,13 +2435,43 @@ "pk": null, "fields": { "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.2" ], - "name": "template_name_suffix", - "value": "'_archive_year'", + "name": "slug_field", + "value": "'slug'", + "line_number": -1 + } +}, +{ + "model": "cbv.klassattribute", + "pk": null, + "fields": { + "klass": [ + "SingleObjectMixin", + "django.views.generic.detail", + "Django", + "3.2" + ], + "name": "slug_url_kwarg", + "value": "'slug'", + "line_number": -1 + } +}, +{ + "model": "cbv.klassattribute", + "pk": null, + "fields": { + "klass": [ + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", + "Django", + "3.2" + ], + "name": "template_name_field", + "value": "None", "line_number": -1 } }, @@ -2525,13 +2525,13 @@ "pk": null, "fields": { "klass": [ - "UpdateView", + "DeletionMixin", "django.views.generic.edit", "Django", "3.2" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2540,13 +2540,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "template_name_suffix", - "value": "'_list'", + "name": "form_class", + "value": "None", "line_number": -1 } }, @@ -2555,13 +2555,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "title", - "value": "gettext_lazy('Password change successful')", + "name": "initial", + "value": "{}", "line_number": -1 } }, @@ -2570,13 +2570,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "title", - "value": "gettext_lazy('Password change')", + "name": "prefix", + "value": "None", "line_number": -1 } }, @@ -2585,13 +2585,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "title", - "value": "gettext_lazy('Password reset complete')", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2600,13 +2600,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "title", - "value": "gettext_lazy('Enter new password')", + "name": "fields", + "value": "None", "line_number": -1 } }, @@ -2615,13 +2615,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "UpdateView", + "django.views.generic.edit", "Django", "3.2" ], - "name": "title", - "value": "gettext_lazy('Password reset sent')", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -2630,13 +2630,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "title", - "value": "gettext_lazy('Password reset')", + "name": "allow_empty", + "value": "True", "line_number": -1 } }, @@ -2645,13 +2645,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "token_generator", - "value": "", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -2660,13 +2660,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "token_generator", - "value": "", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2675,12 +2675,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "url", + "name": "ordering", "value": "None", "line_number": -1 } @@ -2690,13 +2690,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "uses_datetime_field", - "value": "", + "name": "page_kwarg", + "value": "'page'", "line_number": -1 } }, @@ -2705,12 +2705,12 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "week", + "name": "paginate_by", "value": "None", "line_number": -1 } @@ -2720,13 +2720,13 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "week_format", - "value": "'%U'", + "name": "paginate_orphans", + "value": "0", "line_number": -1 } }, @@ -2735,14 +2735,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "with_traceback", - "value": "", - "line_number": -1 + "name": "paginator_class", + "value": "", + "line_number": 27 } }, { @@ -2750,12 +2750,12 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "year", + "name": "queryset", "value": "None", "line_number": -1 } @@ -2765,13 +2765,13 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "year_format", - "value": "'%Y'", + "name": "template_name_suffix", + "value": "'_list'", "line_number": -1 } }, @@ -2780,16 +2780,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", - "kwargs": "self, **kwargs", - "line_number": 38 + "name": "get_login_url", + "docstring": "Override this method to override the login_url attribute.", + "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", + "kwargs": "self", + "line_number": 20 } }, { @@ -2797,16 +2797,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "_allowed_methods", - "docstring": "", - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "name": "get_permission_denied_message", + "docstring": "Override this method to override the permission_denied_message attribute.", + "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", "kwargs": "self", - "line_number": 114 + "line_number": 32 } }, { @@ -2814,16 +2814,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", - "kwargs": "self, date", - "line_number": 161 + "name": "get_redirect_field_name", + "docstring": "Override this method to override the redirect_field_name attribute.", + "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", + "kwargs": "self", + "line_number": 38 } }, { @@ -2831,16 +2831,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", - "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", - "kwargs": "self, date", - "line_number": 115 + "name": "handle_no_permission", + "docstring": "", + "code": "def handle_no_permission(self):\n if self.raise_exception or self.request.user.is_authenticated:\n raise PermissionDenied(self.get_permission_denied_message())\n path = self.request.build_absolute_uri()\n resolved_login_url = resolve_url(self.get_login_url())\n # If the login url is the same scheme and net location then use the\n # path as the \"next\" url.\n login_scheme, login_netloc = urlparse(resolved_login_url)[:2]\n current_scheme, current_netloc = urlparse(path)[:2]\n if (\n (not login_scheme or login_scheme == current_scheme) and\n (not login_netloc or login_netloc == current_netloc)\n ):\n path = self.request.get_full_path()\n return redirect_to_login(\n path,\n resolved_login_url,\n self.get_redirect_field_name(),\n )\n", + "kwargs": "self", + "line_number": 44 } }, { @@ -2848,16 +2848,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "kwargs": "self, date", - "line_number": 210 + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 68 } }, { @@ -2865,16 +2865,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", - "kwargs": "self, date", - "line_number": 63 + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 101 } }, { @@ -2882,16 +2882,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "kwargs": "self, date", - "line_number": 540 + "name": "get_permission_required", + "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", + "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required,)\n else:\n perms = self.permission_required\n return perms\n", + "kwargs": "self", + "line_number": 78 } }, { @@ -2899,16 +2899,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "_get_next_day", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", - "kwargs": "self, date", - "line_number": 153 + "name": "has_permission", + "docstring": "Override this method to customize the way permissions are checked.", + "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "kwargs": "self", + "line_number": 94 } }, { @@ -2916,16 +2916,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "_get_next_month", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", - "kwargs": "self, date", - "line_number": 101 + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 124 } }, { @@ -2933,16 +2933,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "_get_next_week", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", - "kwargs": "self, date", - "line_number": 199 + "name": "get_test_func", + "docstring": "Override this method to use a different test_func method.", + "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", + "kwargs": "self", + "line_number": 118 } }, { @@ -2950,16 +2950,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], - "name": "_get_next_year", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", - "kwargs": "self, date", - "line_number": 52 + "name": "test_func", + "docstring": "", + "code": "def test_func(self):\n raise NotImplementedError(\n '{} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "kwargs": "self", + "line_number": 113 } }, { @@ -2967,16 +2967,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format in {'%W', '%V'}: # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "kwargs": "self, date", - "line_number": 214 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n if self.redirect_authenticated_user and self.request.user.is_authenticated:\n redirect_to = self.get_success_url()\n if redirect_to == self.request.path:\n raise ValueError(\n \"Redirection loop for authenticated user detected. Check that \"\n \"your LOGIN_REDIRECT_URL doesn't point to a login page.\"\n )\n return HttpResponseRedirect(redirect_to)\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 51 } }, { @@ -2984,16 +2984,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value)\n return value\n", - "kwargs": "self, value", - "line_number": 260 + "name": "form_valid", + "docstring": "Security check complete. Log the user in.", + "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 90 } }, { @@ -3001,16 +3001,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "kwargs": "self, date", - "line_number": 273 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 95 } }, { @@ -3018,16 +3018,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "as_view", - "docstring": "Main entry point for a request-response process.", - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\n 'The method name %s is not accepted as a keyword argument '\n 'to %s().' % (key, cls.__name__)\n )\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n self.setup(request, *args, **kwargs)\n if not hasattr(self, 'request'):\n raise AttributeError(\n \"%s instance has no 'request' attribute. Did you override \"\n \"setup() and forget to call super()?\" % cls.__name__\n )\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", - "kwargs": "cls, **initkwargs", - "line_number": 48 + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "kwargs": "self", + "line_number": 82 } }, { @@ -3035,16 +3035,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "delete", - "docstring": "", - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 211 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "kwargs": "self", + "line_number": 85 } }, { @@ -3052,16 +3052,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "delete", - "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 206 + "name": "get_redirect_url", + "docstring": "Return the user-originating redirect URL if it's safe.", + "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", + "kwargs": "self", + "line_number": 69 } }, { @@ -3069,16 +3069,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 90 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", + "kwargs": "self", + "line_number": 65 } }, { @@ -3086,16 +3086,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "LogoutView", "django.contrib.auth.views", "Django", "3.2" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n if self.redirect_authenticated_user and self.request.user.is_authenticated:\n redirect_to = self.get_success_url()\n if redirect_to == self.request.path:\n raise ValueError(\n \"Redirection loop for authenticated user detected. Check that \"\n \"your LOGIN_REDIRECT_URL doesn't point to a login page.\"\n )\n return HttpResponseRedirect(redirect_to)\n return super().dispatch(request, *args, **kwargs)\n", + "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 51 + "line_number": 116 } }, { @@ -3108,11 +3108,11 @@ "Django", "3.2" ], - "name": "dispatch", + "name": "get_context_data", "docstring": "", - "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 116 + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 154 } }, { @@ -3120,16 +3120,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", + "LogoutView", "django.contrib.auth.views", "Django", "3.2" ], - "name": "dispatch", + "name": "get_next_page", "docstring": "", - "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 359 + "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", + "kwargs": "self", + "line_number": 129 } }, { @@ -3137,16 +3137,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "LogoutView", "django.contrib.auth.views", "Django", "3.2" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 336 + "name": "post", + "docstring": "Logout may be done via POST.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 125 } }, { @@ -3154,16 +3154,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", + "PasswordChangeDoneView", "django.contrib.auth.views", "Django", "3.2" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == self.reset_url_token:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, self.reset_url_token)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", + "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", "kwargs": "self, *args, **kwargs", - "line_number": 257 + "line_number": 359 } }, { @@ -3171,16 +3171,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordChangeView", "django.contrib.auth.views", "Django", "3.2" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", "kwargs": "self, *args, **kwargs", - "line_number": 220 + "line_number": 336 } }, { @@ -3188,16 +3188,16 @@ "pk": null, "fields": { "klass": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 68 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 347 } }, { @@ -3205,16 +3205,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not self.has_permission():\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 101 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "kwargs": "self", + "line_number": 342 } }, { @@ -3222,16 +3222,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "dispatch", + "name": "get_context_data", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 124 + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context.update({\n 'title': self.title,\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 199 } }, { @@ -3239,16 +3239,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "form_invalid", - "docstring": "If the form is invalid, render the invalid form.", - "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "kwargs": "self, form", - "line_number": 59 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 324 } }, { @@ -3256,16 +3256,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 55 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n assert 'uidb64' in kwargs and 'token' in kwargs\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == self.reset_url_token:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, self.reset_url_token)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", + "kwargs": "self, *args, **kwargs", + "line_number": 257 } }, { @@ -3273,16 +3273,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.2" ], "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", "kwargs": "self, form", - "line_number": 123 + "line_number": 300 } }, { @@ -3290,16 +3290,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.2" ], - "name": "form_valid", - "docstring": "Security check complete. Log the user in.", - "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 90 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 307 } }, { @@ -3307,16 +3307,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "3.2" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 347 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", + "kwargs": "self", + "line_number": 295 } }, { @@ -3329,11 +3329,28 @@ "Django", "3.2" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 300 + "name": "get_user", + "docstring": "", + "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", + "kwargs": "self, uidb64", + "line_number": 286 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "PasswordResetView", + "django.contrib.auth.views", + "Django", + "3.2" + ], + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 220 } }, { @@ -3358,16 +3375,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "3.2" ], - "name": "get", + "name": "get_success_url_allowed_hosts", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 188 + "code": "def get_success_url_allowed_hosts(self):\n return {self.request.get_host(), *self.success_url_allowed_hosts}\n", + "kwargs": "self", + "line_number": 36 } }, { @@ -3375,16 +3392,16 @@ "pk": null, "fields": { "klass": [ - "TemplateView", + "ContextMixin", "django.views.generic.base", "Django", "3.2" ], - "name": "get", + "name": "get_context_data", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 158 + "code": "def get_context_data(self, **kwargs):\n kwargs.setdefault('view', self)\n if self.extra_context is not None:\n kwargs.update(self.extra_context)\n return kwargs\n", + "kwargs": "self, **kwargs", + "line_number": 23 } }, { @@ -3392,16 +3409,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "3.2" ], - "name": "get", + "name": "delete", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 298 + "line_number": 211 } }, { @@ -3409,16 +3426,16 @@ "pk": null, "fields": { "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "3.2" ], "name": "get", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 105 + "line_number": 188 } }, { @@ -3426,16 +3443,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "3.2" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 166 + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", + "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", + "kwargs": "self, *args, **kwargs", + "line_number": 170 } }, { @@ -3443,16 +3460,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "3.2" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 188 + "line_number": 202 } }, { @@ -3460,16 +3477,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "3.2" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 131 + "line_number": 208 } }, { @@ -3477,16 +3494,16 @@ "pk": null, "fields": { "klass": [ - "BaseListView", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "3.2" ], - "name": "get", + "name": "patch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = not self.object_list\n if is_empty:\n raise Http404(_('Empty list and “%(class_name)s.allow_empty” is False.') % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", + "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 141 + "line_number": 217 } }, { @@ -3494,16 +3511,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "3.2" ], - "name": "get_allow_empty", - "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", - "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "kwargs": "self", - "line_number": 97 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 205 } }, { @@ -3511,16 +3528,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "3.2" ], - "name": "get_allow_future", - "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", - "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", - "kwargs": "self", - "line_number": 240 + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 214 } }, { @@ -3528,16 +3545,16 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", + "TemplateResponseMixin", "django.views.generic.base", "Django", "3.2" ], - "name": "get_context_data", - "docstring": "", - "code": "def get_context_data(self, **kwargs):\n kwargs.setdefault('view', self)\n if self.extra_context is not None:\n kwargs.update(self.extra_context)\n return kwargs\n", - "kwargs": "self, **kwargs", - "line_number": 23 + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "kwargs": "self", + "line_number": 141 } }, { @@ -3545,16 +3562,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.2" ], - "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", - "kwargs": "self, **kwargs", - "line_number": 91 + "name": "render_to_response", + "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 125 } }, { @@ -3562,16 +3579,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "3.2" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", - "kwargs": "self, **kwargs", - "line_number": 63 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 158 } }, { @@ -3579,16 +3596,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", - "Django", + "View", + "django.views.generic.base", + "Django", "3.2" ], - "name": "get_context_data", - "docstring": "Get the context for this view.", - "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", - "kwargs": "self, *, object_list=None, **kwargs", - "line_number": 113 + "name": "_allowed_methods", + "docstring": "", + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "kwargs": "self", + "line_number": 114 } }, { @@ -3596,16 +3613,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "View", + "django.views.generic.base", "Django", "3.2" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 95 + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\n 'The method name %s is not accepted as a keyword argument '\n 'to %s().' % (key, cls.__name__)\n )\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n self.setup(request, *args, **kwargs)\n if not hasattr(self, 'request'):\n raise AttributeError(\n \"%s instance has no 'request' attribute. Did you override \"\n \"setup() and forget to call super()?\" % cls.__name__\n )\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # take name and docstring from class\n update_wrapper(view, cls, updated=())\n # and possible attributes set by decorators\n # like csrf_exempt from dispatch\n update_wrapper(view, cls.dispatch, assigned=())\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 48 } }, { @@ -3613,16 +3630,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "View", + "django.views.generic.base", "Django", "3.2" ], - "name": "get_context_data", + "name": "dispatch", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 154 + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 90 } }, { @@ -3630,16 +3647,16 @@ "pk": null, "fields": { "klass": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "View", + "django.views.generic.base", "Django", "3.2" ], - "name": "get_context_data", + "name": "http_method_not_allowed", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context.update({\n 'title': self.title,\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 199 + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 100 } }, { @@ -3647,16 +3664,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "View", + "django.views.generic.base", "Django", "3.2" ], - "name": "get_context_data", - "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", "kwargs": "self, **kwargs", - "line_number": 324 + "line_number": 38 } }, { @@ -3664,16 +3681,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "View", + "django.views.generic.base", "Django", "3.2" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 307 + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response.headers['Allow'] = ', '.join(self._allowed_methods())\n response.headers['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 107 } }, { @@ -3681,15 +3698,15 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "View", + "django.views.generic.base", "Django", "3.2" ], - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", - "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", - "kwargs": "self, obj", + "name": "setup", + "docstring": "Initialize attributes shared by all view methods.", + "code": "def setup(self, request, *args, **kwargs):\n \"\"\"Initialize attributes shared by all view methods.\"\"\"\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n", + "kwargs": "self, request, *args, **kwargs", "line_number": 82 } }, @@ -3698,16 +3715,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", - "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", - "kwargs": "self, object_list", - "line_number": 104 + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", + "kwargs": "self", + "line_number": 381 } }, { @@ -3715,16 +3732,67 @@ "pk": null, "fields": { "klass": [ - "DateMixin", + "BaseDateDetailView", "django.views.generic.dates", "Django", "3.2" ], - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", - "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 580 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "BaseDateListView", + "django.views.generic.dates", + "Django", + "3.2" + ], + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 298 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "BaseDateListView", + "django.views.generic.dates", + "Django", + "3.2" + ], + "name": "get_dated_items", + "docstring": "Obtain the list of dates and items.", + "code": "def get_dated_items(self):\n \"\"\"Obtain the list of dates and items.\"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", "kwargs": "self", - "line_number": 234 + "line_number": 307 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "BaseDateListView", + "django.views.generic.dates", + "Django", + "3.2" + ], + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = not qs if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n })\n return qs\n", + "kwargs": "self, **lookup", + "line_number": 318 } }, { @@ -3766,16 +3834,16 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", + "BaseDateListView", "django.views.generic.dates", "Django", "3.2" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", + "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", "kwargs": "self", - "line_number": 381 + "line_number": 311 } }, { @@ -3783,16 +3851,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "3.2" ], - "name": "get_dated_items", - "docstring": "Obtain the list of dates and items.", - "code": "def get_dated_items(self):\n \"\"\"Obtain the list of dates and items.\"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", - "kwargs": "self", - "line_number": 307 + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 540 } }, { @@ -3885,16 +3953,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "3.2" ], - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", - "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = not qs if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n })\n return qs\n", - "kwargs": "self, **lookup", - "line_number": 318 + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", + "kwargs": "self", + "line_number": 430 } }, { @@ -3902,16 +3970,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "DateMixin", "django.views.generic.dates", "Django", "3.2" ], - "name": "get_day", - "docstring": "Return the day for which this view should display data.", - "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "name": "get_allow_future", + "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", "kwargs": "self", - "line_number": 132 + "line_number": 240 } }, { @@ -3919,16 +3987,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "DateMixin", "django.views.generic.dates", "Django", "3.2" ], - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", "kwargs": "self", - "line_number": 125 + "line_number": 234 } }, { @@ -3936,16 +4004,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_form", - "docstring": "Return an instance of the form to be used in this view.", - "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", - "kwargs": "self, form_class=None", - "line_number": 29 + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value)\n return value\n", + "kwargs": "self, value", + "line_number": 260 } }, { @@ -3953,16 +4021,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", - "kwargs": "self", - "line_number": 25 + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", + "kwargs": "self, date", + "line_number": 273 } }, { @@ -3970,33 +4038,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_form_class", - "docstring": "Return the form class to use in this view.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif getattr(self, 'object', None) is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", - "kwargs": "self", - "line_number": 74 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "LoginView", - "django.contrib.auth.views", - "Django", - "3.2" - ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", - "kwargs": "self", - "line_number": 82 + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", + "kwargs": "self, date", + "line_number": 161 } }, { @@ -4004,16 +4055,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "name": "get_day", + "docstring": "Return the day for which this view should display data.", + "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", "kwargs": "self", - "line_number": 35 + "line_number": 132 } }, { @@ -4021,16 +4072,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", "kwargs": "self", - "line_number": 103 + "line_number": 125 } }, { @@ -4038,16 +4089,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", - "kwargs": "self", - "line_number": 85 + "name": "_get_next_day", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", + "kwargs": "self, date", + "line_number": 153 } }, { @@ -4055,16 +4106,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", - "kwargs": "self", - "line_number": 342 + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"Get the next valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "kwargs": "self, date", + "line_number": 145 } }, { @@ -4072,16 +4123,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", - "kwargs": "self", - "line_number": 295 + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "kwargs": "self, date", + "line_number": 149 } }, { @@ -4089,16 +4140,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_initial", - "docstring": "Return the initial data to use for forms on this view.", - "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", - "kwargs": "self", - "line_number": 17 + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", + "kwargs": "self, date", + "line_number": 115 } }, { @@ -4106,16 +4157,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "MonthMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_login_url", - "docstring": "Override this method to override the login_url attribute.", - "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", + "name": "get_month", + "docstring": "Return the month for which this view should display data.", + "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", "kwargs": "self", - "line_number": 20 + "line_number": 80 } }, { @@ -4123,16 +4174,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", + "MonthMixin", "django.views.generic.dates", "Django", "3.2" ], - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", "kwargs": "self", - "line_number": 430 + "line_number": 73 } }, { @@ -4145,11 +4196,11 @@ "Django", "3.2" ], - "name": "get_month", - "docstring": "Return the month for which this view should display data.", - "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", - "kwargs": "self", - "line_number": 80 + "name": "_get_next_month", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "kwargs": "self, date", + "line_number": 101 } }, { @@ -4162,11 +4213,11 @@ "Django", "3.2" ], - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", - "kwargs": "self", - "line_number": 73 + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "kwargs": "self, date", + "line_number": 93 } }, { @@ -4174,16 +4225,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "MonthMixin", "django.views.generic.dates", "Django", "3.2" ], - "name": "get_next_day", - "docstring": "Get the next valid day.", - "code": "def get_next_day(self, date):\n \"\"\"Get the next valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", "kwargs": "self, date", - "line_number": 145 + "line_number": 97 } }, { @@ -4191,16 +4242,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "WeekMixin", "django.views.generic.dates", "Django", "3.2" ], - "name": "get_next_month", - "docstring": "Get the next valid month.", - "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", "kwargs": "self, date", - "line_number": 93 + "line_number": 210 } }, { @@ -4208,16 +4259,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_next_page", - "docstring": "", - "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", - "kwargs": "self", - "line_number": 129 + "name": "_get_next_week", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "kwargs": "self, date", + "line_number": 199 } }, { @@ -4242,16 +4293,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "WeekMixin", "django.views.generic.dates", "Django", "3.2" ], - "name": "get_next_year", - "docstring": "Get the next valid year.", - "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", "kwargs": "self, date", - "line_number": 44 + "line_number": 195 } }, { @@ -4259,16 +4310,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateDetailView", + "WeekMixin", "django.views.generic.dates", "Django", "3.2" ], - "name": "get_object", - "docstring": "Get the object this request displays.", - "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", - "kwargs": "self, queryset=None", - "line_number": 580 + "name": "get_week", + "docstring": "Return the week for which this view should display data.", + "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", + "kwargs": "self", + "line_number": 178 } }, { @@ -4276,16 +4327,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "WeekMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_object", - "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\n \"Generic detail view %s must be called with either an object \"\n \"pk or a slug in the URLconf.\" % self.__class__.__name__\n )\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "kwargs": "self, queryset=None", - "line_number": 20 + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format in {'%W', '%V'}: # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", + "kwargs": "self, date", + "line_number": 214 } }, { @@ -4293,16 +4344,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "WeekMixin", "django.views.generic.dates", "Django", "3.2" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", - "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", "kwargs": "self", - "line_number": 311 + "line_number": 171 } }, { @@ -4310,16 +4361,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset.", - "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", - "kwargs": "self", - "line_number": 50 + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", + "kwargs": "self, date", + "line_number": 63 } }, { @@ -4327,16 +4378,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "kwargs": "self, queryset", - "line_number": 77 + "name": "_get_next_year", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", + "kwargs": "self, date", + "line_number": 52 } }, { @@ -4344,16 +4395,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_paginate_orphans", - "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", - "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", - "kwargs": "self", - "line_number": 90 + "name": "get_next_year", + "docstring": "Get the next valid year.", + "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", + "kwargs": "self, date", + "line_number": 44 } }, { @@ -4361,16 +4412,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", - "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", - "line_number": 83 + "name": "get_previous_year", + "docstring": "Get the previous valid year.", + "code": "def get_previous_year(self, date):\n \"\"\"Get the previous valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", + "kwargs": "self, date", + "line_number": 48 } }, { @@ -4378,16 +4429,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "YearMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_permission_denied_message", - "docstring": "Override this method to override the permission_denied_message attribute.", - "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", "kwargs": "self", - "line_number": 32 + "line_number": 31 } }, { @@ -4395,16 +4446,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "YearMixin", + "django.views.generic.dates", "Django", "3.2" ], - "name": "get_permission_required", - "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", - "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required,)\n else:\n perms = self.permission_required\n return perms\n", + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", "kwargs": "self", - "line_number": 78 + "line_number": 24 } }, { @@ -4412,16 +4463,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "3.2" ], - "name": "get_prefix", - "docstring": "Return the prefix to use for forms.", - "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", - "kwargs": "self", - "line_number": 21 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 105 } }, { @@ -4429,16 +4480,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.2" ], - "name": "get_previous_day", - "docstring": "Get the previous valid day.", - "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", - "kwargs": "self, date", - "line_number": 149 + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 91 } }, { @@ -4446,16 +4497,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.2" ], - "name": "get_previous_month", - "docstring": "Get the previous valid month.", - "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", - "kwargs": "self, date", - "line_number": 97 + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 82 } }, { @@ -4463,16 +4514,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.2" ], - "name": "get_previous_week", - "docstring": "Get the previous valid week.", - "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", - "kwargs": "self, date", - "line_number": 195 + "name": "get_object", + "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\n \"Generic detail view %s must be called with either an object \"\n \"pk or a slug in the URLconf.\" % self.__class__.__name__\n )\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 20 } }, { @@ -4480,16 +4531,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.2" ], - "name": "get_previous_year", - "docstring": "Get the previous valid year.", - "code": "def get_previous_year(self, date):\n \"\"\"Get the previous valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='year')\n", - "kwargs": "self, date", - "line_number": 48 + "name": "get_queryset", + "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", + "kwargs": "self", + "line_number": 58 } }, { @@ -4502,11 +4553,11 @@ "Django", "3.2" ], - "name": "get_queryset", - "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", - "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"Get the name of a slug field to be used to look up by slug.\"\"\"\n return self.slug_field\n", "kwargs": "self", - "line_number": 58 + "line_number": 78 } }, { @@ -4514,16 +4565,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.2" ], - "name": "get_queryset", - "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", - "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response() is overridden. Return the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response() is overridden. Return the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif getattr(self, 'model', None) is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", "kwargs": "self", - "line_number": 21 + "line_number": 115 } }, { @@ -4531,16 +4582,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseCreateView", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_redirect_field_name", - "docstring": "Override this method to override the redirect_field_name attribute.", - "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", - "kwargs": "self", - "line_number": 38 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 166 } }, { @@ -4548,15 +4599,15 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseCreateView", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", - "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", - "kwargs": "self, *args, **kwargs", + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", "line_number": 170 } }, @@ -4565,16 +4616,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_redirect_url", - "docstring": "Return the user-originating redirect URL if it's safe.", - "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", - "kwargs": "self", - "line_number": 69 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 188 } }, { @@ -4582,16 +4633,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", - "code": "def get_slug_field(self):\n \"\"\"Get the name of a slug field to be used to look up by slug.\"\"\"\n return self.slug_field\n", - "kwargs": "self", - "line_number": 78 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 192 } }, { @@ -4604,11 +4655,11 @@ "Django", "3.2" ], - "name": "get_success_url", - "docstring": "", - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", - "kwargs": "self", - "line_number": 220 + "name": "delete", + "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 206 } }, { @@ -4616,16 +4667,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", + "DeletionMixin", "django.views.generic.edit", "Django", "3.2" ], "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", "kwargs": "self", - "line_number": 49 + "line_number": 220 } }, { @@ -4633,16 +4684,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", + "DeletionMixin", "django.views.generic.edit", "Django", "3.2" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", - "kwargs": "self", - "line_number": 110 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 217 } }, { @@ -4650,16 +4701,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n url = self.get_redirect_url()\n return url or resolve_url(settings.LOGIN_REDIRECT_URL)\n", - "kwargs": "self", - "line_number": 65 + "name": "form_invalid", + "docstring": "If the form is invalid, render the invalid form.", + "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 59 } }, { @@ -4667,16 +4718,16 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_success_url_allowed_hosts", - "docstring": "", - "code": "def get_success_url_allowed_hosts(self):\n return {self.request.get_host(), *self.success_url_allowed_hosts}\n", - "kwargs": "self", - "line_number": 36 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 55 } }, { @@ -4684,16 +4735,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "kwargs": "self", - "line_number": 141 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", + "kwargs": "self, **kwargs", + "line_number": 63 } }, { @@ -4701,16 +4752,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response() is overridden. Return the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response() is overridden. Return the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif getattr(self, 'model', None) is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", - "kwargs": "self", - "line_number": 115 + "name": "get_form", + "docstring": "Return an instance of the form to be used in this view.", + "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class=None", + "line_number": 29 } }, { @@ -4718,16 +4769,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n elif not names:\n raise ImproperlyConfigured(\n \"%(cls)s requires either a 'template_name' attribute \"\n \"or a get_queryset() method that returns a QuerySet.\" % {\n 'cls': self.__class__.__name__,\n }\n )\n return names\n", + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", "kwargs": "self", - "line_number": 165 + "line_number": 25 } }, { @@ -4735,33 +4786,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_test_func", - "docstring": "Override this method to use a different test_func method.", - "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", "kwargs": "self", - "line_number": 118 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", - "Django", - "3.2" - ], - "name": "get_user", - "docstring": "", - "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", - "kwargs": "self, uidb64", - "line_number": 286 + "line_number": 35 } }, { @@ -4769,16 +4803,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_week", - "docstring": "Return the week for which this view should display data.", - "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", + "name": "get_initial", + "docstring": "Return the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", "kwargs": "self", - "line_number": 178 + "line_number": 17 } }, { @@ -4786,16 +4820,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", + "name": "get_prefix", + "docstring": "Return the prefix to use for forms.", + "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", "kwargs": "self", - "line_number": 171 + "line_number": 21 } }, { @@ -4803,16 +4837,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_year", - "docstring": "Return the year for which this view should display data.", - "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", "kwargs": "self", - "line_number": 31 + "line_number": 49 } }, { @@ -4820,16 +4854,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", - "kwargs": "self", - "line_number": 24 + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 123 } }, { @@ -4837,16 +4871,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "handle_no_permission", - "docstring": "", - "code": "def handle_no_permission(self):\n if self.raise_exception or self.request.user.is_authenticated:\n raise PermissionDenied(self.get_permission_denied_message())\n path = self.request.build_absolute_uri()\n resolved_login_url = resolve_url(self.get_login_url())\n # If the login url is the same scheme and net location then use the\n # path as the \"next\" url.\n login_scheme, login_netloc = urlparse(resolved_login_url)[:2]\n current_scheme, current_netloc = urlparse(path)[:2]\n if (\n (not login_scheme or login_scheme == current_scheme) and\n (not login_netloc or login_netloc == current_netloc)\n ):\n path = self.request.get_full_path()\n return redirect_to_login(\n path,\n resolved_login_url,\n self.get_redirect_field_name(),\n )\n", + "name": "get_form_class", + "docstring": "Return the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif getattr(self, 'object', None) is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", "kwargs": "self", - "line_number": 44 + "line_number": 74 } }, { @@ -4854,33 +4888,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "has_permission", - "docstring": "Override this method to customize the way permissions are checked.", - "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", "kwargs": "self", - "line_number": 94 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "RedirectView", - "django.views.generic.base", - "Django", - "3.2" - ], - "name": "head", - "docstring": "", - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 202 + "line_number": 103 } }, { @@ -4888,16 +4905,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "name": "http_method_not_allowed", - "docstring": "", - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 100 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 110 } }, { @@ -4905,16 +4922,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.2" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 208 + "line_number": 131 } }, { @@ -4922,33 +4939,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.2" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response.headers['Allow'] = ', '.join(self._allowed_methods())\n response.headers['Content-Length'] = '0'\n return response\n", + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handle POST requests: instantiate a form instance with the passed\n POST variables and then check if it's valid.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 107 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", - "Django", - "3.2" - ], - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_('Page is not “last”, nor can it be converted to an int.'))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", - "kwargs": "self, queryset, page_size", - "line_number": 54 + "line_number": 135 } }, { @@ -4956,16 +4956,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.2" ], - "name": "patch", + "name": "put", "docstring": "", - "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 217 + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 148 } }, { @@ -4973,16 +4973,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "BaseListView", + "django.views.generic.list", "Django", "3.2" ], - "name": "post", + "name": "get", "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = not self.object_list\n if is_empty:\n raise Http404(_('Empty list and “%(class_name)s.allow_empty” is False.') % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 205 + "line_number": 141 } }, { @@ -4990,16 +4990,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 170 + "name": "get_allow_empty", + "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 97 } }, { @@ -5007,16 +5007,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 192 + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, *, object_list=None, **kwargs", + "line_number": 113 } }, { @@ -5024,16 +5024,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 217 + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 104 } }, { @@ -5041,16 +5041,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handle POST requests: instantiate a form instance with the passed\n POST variables and then check if it's valid.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 135 + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset.", + "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", + "kwargs": "self", + "line_number": 50 } }, { @@ -5058,16 +5058,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "post", - "docstring": "Logout may be done via POST.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 125 + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 77 } }, { @@ -5075,16 +5075,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "put", - "docstring": "", - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 214 + "name": "get_paginate_orphans", + "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", + "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "kwargs": "self", + "line_number": 90 } }, { @@ -5092,16 +5092,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "put", - "docstring": "", - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 148 + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", + "line_number": 83 } }, { @@ -5109,16 +5109,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "render_to_response", - "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", - "kwargs": "self, context, **response_kwargs", - "line_number": 125 + "name": "get_queryset", + "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", + "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "kwargs": "self", + "line_number": 21 } }, { @@ -5126,16 +5126,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", - "Django", - "3.2" - ], - "name": "setup", - "docstring": "Initialize attributes shared by all view methods.", - "code": "def setup(self, request, *args, **kwargs):\n \"\"\"Initialize attributes shared by all view methods.\"\"\"\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 82 + "MultipleObjectMixin", + "django.views.generic.list", + "Django", + "3.2" + ], + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_('Page is not “last”, nor can it be converted to an int.'))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 54 } }, { @@ -5143,16 +5143,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.2" ], - "name": "test_func", - "docstring": "", - "code": "def test_func(self):\n raise NotImplementedError(\n '{} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n elif not names:\n raise ImproperlyConfigured(\n \"%(cls)s requires either a 'template_name' attribute \"\n \"or a get_queryset() method that returns a QuerySet.\" % {\n 'cls': self.__class__.__name__,\n }\n )\n return names\n", "kwargs": "self", - "line_number": 113 + "line_number": 165 } }, { @@ -5160,14 +5160,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], "child": [ - "RedirectView", - "django.views.generic.base", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], @@ -5179,14 +5179,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], "child": [ - "TemplateView", - "django.views.generic.base", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], @@ -5198,14 +5198,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "3.2" ], @@ -5217,14 +5217,14 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "3.2" ], "child": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], @@ -5236,18 +5236,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "3.2" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5255,14 +5255,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "3.2" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "3.2" ], @@ -5274,18 +5274,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5293,14 +5293,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.2" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.2" ], @@ -5312,18 +5312,18 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5331,14 +5331,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.2" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.2" ], @@ -5350,18 +5350,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "3.2" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5369,14 +5369,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.2" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "3.2" ], @@ -5388,18 +5388,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "TemplateView", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5407,14 +5407,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.2" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.2" ], @@ -5426,18 +5426,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "FormView", + "django.views.generic.edit", "Django", "3.2" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5445,14 +5445,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.2" ], "child": [ - "WeekArchiveView", - "django.views.generic.dates", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "3.2" ], @@ -5464,18 +5464,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "TemplateView", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5483,14 +5483,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "3.2" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.2" ], @@ -5502,18 +5502,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormView", + "django.views.generic.edit", "Django", "3.2" ], "child": [ - "DetailView", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5521,14 +5521,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", + "View", "django.views.generic.base", "Django", "3.2" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "3.2" ], @@ -5546,8 +5546,8 @@ "3.2" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "3.2" ], @@ -5559,18 +5559,18 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5578,18 +5578,18 @@ "pk": null, "fields": { "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "3.2" ], - "order": 0 + "order": 2 } }, { @@ -5597,14 +5597,14 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.2" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "3.2" ], @@ -5616,18 +5616,18 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5635,14 +5635,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "CreateView", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "3.2" ], @@ -5654,14 +5654,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "3.2" ], @@ -5673,18 +5673,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "MonthMixin", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5692,18 +5692,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DayMixin", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "FormView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 2 } }, { @@ -5711,18 +5711,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 3 } }, { @@ -5730,18 +5730,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseDetailView", + "django.views.generic.detail", "Django", "3.2" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 4 } }, { @@ -5749,14 +5749,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.2" ], @@ -5768,18 +5768,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DateMixin", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5787,18 +5787,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "View", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 2 } }, { @@ -5806,14 +5806,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.2" ], @@ -5825,18 +5825,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MonthMixin", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5844,18 +5844,18 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 2 } }, { @@ -5863,18 +5863,18 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 3 } }, { @@ -5882,14 +5882,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.2" ], @@ -5901,18 +5901,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5920,18 +5920,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 2 } }, { @@ -5939,14 +5939,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "3.2" ], @@ -5958,14 +5958,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "3.2" ], @@ -5977,18 +5977,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -5996,18 +5996,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 2 } }, { @@ -6015,14 +6015,14 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "YearMixin", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.2" ], @@ -6034,18 +6034,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseDateListView", + "django.views.generic.dates", "Django", "3.2" ], "child": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 0 + "order": 1 } }, { @@ -6053,18 +6053,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.2" ], "child": [ - "TemplateView", - "django.views.generic.base", + "DateDetailView", + "django.views.generic.dates", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6072,13 +6072,13 @@ "pk": null, "fields": { "parent": [ - "BaseArchiveIndexView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "3.2" ], "child": [ - "ArchiveIndexView", + "DateDetailView", "django.views.generic.dates", "Django", "3.2" @@ -6091,18 +6091,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.2" ], "child": [ - "BaseDateDetailView", + "DayArchiveView", "django.views.generic.dates", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6110,13 +6110,13 @@ "pk": null, "fields": { "parent": [ - "DateMixin", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "3.2" ], "child": [ - "BaseDateListView", + "DayArchiveView", "django.views.generic.dates", "Django", "3.2" @@ -6129,18 +6129,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.2" ], "child": [ - "BaseDayArchiveView", + "MonthArchiveView", "django.views.generic.dates", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6148,13 +6148,13 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", + "BaseMonthArchiveView", "django.views.generic.dates", "Django", "3.2" ], "child": [ - "BaseMonthArchiveView", + "MonthArchiveView", "django.views.generic.dates", "Django", "3.2" @@ -6167,18 +6167,18 @@ "pk": null, "fields": { "parent": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.2" ], "child": [ - "BaseWeekArchiveView", + "TodayArchiveView", "django.views.generic.dates", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6186,13 +6186,13 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", + "BaseTodayArchiveView", "django.views.generic.dates", "Django", "3.2" ], "child": [ - "BaseYearArchiveView", + "TodayArchiveView", "django.views.generic.dates", "Django", "3.2" @@ -6205,18 +6205,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.2" ], "child": [ - "DateDetailView", + "WeekArchiveView", "django.views.generic.dates", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6224,13 +6224,13 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", + "BaseWeekArchiveView", "django.views.generic.dates", "Django", "3.2" ], "child": [ - "DayArchiveView", + "WeekArchiveView", "django.views.generic.dates", "Django", "3.2" @@ -6243,18 +6243,18 @@ "pk": null, "fields": { "parent": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.2" ], "child": [ - "MonthArchiveView", + "YearArchiveView", "django.views.generic.dates", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6262,13 +6262,13 @@ "pk": null, "fields": { "parent": [ - "BaseTodayArchiveView", + "BaseYearArchiveView", "django.views.generic.dates", "Django", "3.2" ], "child": [ - "TodayArchiveView", + "YearArchiveView", "django.views.generic.dates", "Django", "3.2" @@ -6281,18 +6281,18 @@ "pk": null, "fields": { "parent": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.2" ], "child": [ - "WeekArchiveView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6300,14 +6300,14 @@ "pk": null, "fields": { "parent": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "3.2" ], @@ -6319,18 +6319,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.2" ], "child": [ - "BaseDetailView", + "DetailView", "django.views.generic.detail", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6357,18 +6357,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6376,18 +6376,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6395,18 +6395,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", + "ModelFormMixin", "django.views.generic.edit", "Django", "3.2" ], "child": [ - "BaseFormView", + "BaseCreateView", "django.views.generic.edit", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6420,7 +6420,7 @@ "3.2" ], "child": [ - "BaseUpdateView", + "BaseCreateView", "django.views.generic.edit", "Django", "3.2" @@ -6433,18 +6433,18 @@ "pk": null, "fields": { "parent": [ - "BaseCreateView", + "DeletionMixin", "django.views.generic.edit", "Django", "3.2" ], "child": [ - "CreateView", + "BaseDeleteView", "django.views.generic.edit", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6452,13 +6452,13 @@ "pk": null, "fields": { "parent": [ - "BaseDeleteView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "3.2" ], "child": [ - "DeleteView", + "BaseDeleteView", "django.views.generic.edit", "Django", "3.2" @@ -6471,18 +6471,18 @@ "pk": null, "fields": { "parent": [ - "BaseFormView", + "FormMixin", "django.views.generic.edit", "Django", "3.2" ], "child": [ - "FormView", + "BaseFormView", "django.views.generic.edit", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6490,13 +6490,13 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.2" ], "child": [ - "ModelFormMixin", + "BaseFormView", "django.views.generic.edit", "Django", "3.2" @@ -6509,18 +6509,18 @@ "pk": null, "fields": { "parent": [ - "BaseUpdateView", + "ModelFormMixin", "django.views.generic.edit", "Django", "3.2" ], "child": [ - "UpdateView", + "BaseUpdateView", "django.views.generic.edit", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6528,14 +6528,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.2" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.2" ], @@ -6547,18 +6547,18 @@ "pk": null, "fields": { "parent": [ - "BaseListView", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.2" ], "child": [ - "ListView", - "django.views.generic.list", + "CreateView", + "django.views.generic.edit", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6566,14 +6566,14 @@ "pk": null, "fields": { "parent": [ - "FormView", + "BaseCreateView", "django.views.generic.edit", "Django", "3.2" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "CreateView", + "django.views.generic.edit", "Django", "3.2" ], @@ -6585,18 +6585,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.2" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "DeleteView", + "django.views.generic.edit", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6604,14 +6604,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "BaseDeleteView", + "django.views.generic.edit", "Django", "3.2" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "DeleteView", + "django.views.generic.edit", "Django", "3.2" ], @@ -6623,18 +6623,18 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6642,18 +6642,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", + "TemplateResponseMixin", "django.views.generic.base", "Django", "3.2" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "FormView", + "django.views.generic.edit", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6661,14 +6661,14 @@ "pk": null, "fields": { "parent": [ - "FormView", + "BaseFormView", "django.views.generic.edit", "Django", "3.2" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "FormView", + "django.views.generic.edit", "Django", "3.2" ], @@ -6680,18 +6680,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "3.2" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.2" ], - "order": 1 + "order": 0 } }, { @@ -6699,14 +6699,14 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "3.2" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "3.2" ], @@ -6724,12 +6724,12 @@ "3.2" ], "child": [ - "TemplateView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "3.2" ], - "order": 2 + "order": 0 } }, { @@ -6737,18 +6737,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "3.2" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "3.2" ], - "order": 2 + "order": 0 } }, { @@ -6756,18 +6756,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "3.2" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "3.2" ], - "order": 2 + "order": 1 } }, { @@ -6775,18 +6775,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "3.2" ], - "order": 2 + "order": 0 } }, { @@ -6794,18 +6794,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "3.2" ], - "order": 2 + "order": 1 } }, { @@ -6813,18 +6813,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.2" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "3.2" ], - "order": 2 + "order": 0 } }, { @@ -6832,18 +6832,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "3.2" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "3.2" ], - "order": 3 + "order": 1 } }, { @@ -6851,18 +6851,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "3.2" ], - "order": 3 + "order": 0 } }, { @@ -6870,18 +6870,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "3.2" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "3.2" ], - "order": 4 + "order": 0 } } ] diff --git a/cbv/fixtures/4.0.json b/cbv/fixtures/4.0.json index 758df0f1..6f820fa6 100644 --- a/cbv/fixtures/4.0.json +++ b/cbv/fixtures/4.0.json @@ -16,9 +16,9 @@ "Django", "4.0" ], - "name": "django.views.generic", + "name": "django.contrib.auth.mixins", "docstring": "", - "filename": "/django/views/generic/__init__.py" + "filename": "/django/contrib/auth/mixins.py" } }, { @@ -28,9 +28,9 @@ "Django", "4.0" ], - "name": "django.views.generic.base", + "name": "django.contrib.auth.views", "docstring": "", - "filename": "/django/views/generic/base.py" + "filename": "/django/contrib/auth/views.py" } }, { @@ -40,9 +40,9 @@ "Django", "4.0" ], - "name": "django.views.generic.dates", + "name": "django.views.generic", "docstring": "", - "filename": "/django/views/generic/dates.py" + "filename": "/django/views/generic/__init__.py" } }, { @@ -52,9 +52,9 @@ "Django", "4.0" ], - "name": "django.views.generic.detail", + "name": "django.views.generic.base", "docstring": "", - "filename": "/django/views/generic/detail.py" + "filename": "/django/views/generic/base.py" } }, { @@ -64,9 +64,9 @@ "Django", "4.0" ], - "name": "django.views.generic.edit", + "name": "django.views.generic.dates", "docstring": "", - "filename": "/django/views/generic/edit.py" + "filename": "/django/views/generic/dates.py" } }, { @@ -76,9 +76,9 @@ "Django", "4.0" ], - "name": "django.views.generic.list", + "name": "django.views.generic.detail", "docstring": "", - "filename": "/django/views/generic/list.py" + "filename": "/django/views/generic/detail.py" } }, { @@ -88,9 +88,9 @@ "Django", "4.0" ], - "name": "django.contrib.auth.views", + "name": "django.views.generic.edit", "docstring": "", - "filename": "/django/contrib/auth/views.py" + "filename": "/django/views/generic/edit.py" } }, { @@ -100,9 +100,9 @@ "Django", "4.0" ], - "name": "django.contrib.auth.mixins", + "name": "django.views.generic.list", "docstring": "", - "filename": "/django/contrib/auth/mixins.py" + "filename": "/django/views/generic/list.py" } }, { @@ -1025,13 +1025,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], - "name": "allow_empty", - "value": "True", + "name": "login_url", + "value": "None", "line_number": -1 } }, @@ -1040,13 +1040,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], - "name": "allow_empty", - "value": "False", + "name": "permission_denied_message", + "value": "''", "line_number": -1 } }, @@ -1055,12 +1055,12 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], - "name": "allow_future", + "name": "raise_exception", "value": "False", "line_number": -1 } @@ -1070,13 +1070,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], - "name": "args", - "value": "", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1085,13 +1085,13 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], - "name": "args", - "value": "", + "name": "permission_required", + "value": "None", "line_number": -1 } }, @@ -1115,14 +1115,14 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "__cause__", - "value": "", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 163 } }, { @@ -1130,13 +1130,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "__cause__", - "value": "", + "name": "next_page", + "value": "None", "line_number": -1 } }, @@ -1145,13 +1145,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "content_type", - "value": "None", + "name": "redirect_authenticated_user", + "value": "False", "line_number": -1 } }, @@ -1160,13 +1160,13 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "__context__", - "value": "", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1175,13 +1175,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "LoginView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "__context__", - "value": "", + "name": "template_name", + "value": "'registration/login.html'", "line_number": -1 } }, @@ -1190,13 +1190,13 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "context_object_name", - "value": "'latest'", + "name": "next_page", + "value": "None", "line_number": -1 } }, @@ -1205,13 +1205,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "LogoutView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "context_object_name", - "value": "None", + "name": "redirect_field_name", + "value": "'next'", "line_number": -1 } }, @@ -1220,13 +1220,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "LogoutView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "context_object_name", - "value": "None", + "name": "template_name", + "value": "'registration/logged_out.html'", "line_number": -1 } }, @@ -1235,13 +1235,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "date_field", - "value": "None", + "name": "template_name", + "value": "'registration/password_change_done.html'", "line_number": -1 } }, @@ -1250,13 +1250,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "date_list_period", - "value": "'month'", + "name": "title", + "value": "gettext_lazy('Password change successful')", "line_number": -1 } }, @@ -1265,14 +1265,14 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "date_list_period", - "value": "'day'", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 363 } }, { @@ -1280,13 +1280,13 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "date_list_period", - "value": "'year'", + "name": "success_url", + "value": "reverse_lazy('password_change_done')", "line_number": -1 } }, @@ -1295,13 +1295,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "day", - "value": "None", + "name": "template_name", + "value": "'registration/password_change_form.html'", "line_number": -1 } }, @@ -1310,13 +1310,13 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "day_format", - "value": "'%d'", + "name": "title", + "value": "gettext_lazy('Password change')", "line_number": -1 } }, @@ -1325,13 +1325,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "__delattr__", - "value": "", + "name": "extra_context", + "value": "None", "line_number": -1 } }, @@ -1340,13 +1340,13 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "__delattr__", - "value": "", + "name": "template_name", + "value": "'registration/password_reset_complete.html'", "line_number": -1 } }, @@ -1355,13 +1355,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetCompleteView", "django.contrib.auth.views", "Django", "4.0" ], - "name": "email_template_name", - "value": "'registration/password_reset_email.html'", + "name": "title", + "value": "gettext_lazy('Password reset complete')", "line_number": -1 } }, @@ -1370,14 +1370,14 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", - "django.views.generic.base", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "extra_context", - "value": "None", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 319 } }, { @@ -1385,13 +1385,13 @@ "pk": null, "fields": { "klass": [ - "PasswordContextMixin", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "4.0" ], - "name": "extra_context", - "value": "None", + "name": "post_reset_login", + "value": "False", "line_number": -1 } }, @@ -1400,12 +1400,12 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "4.0" ], - "name": "extra_email_context", + "name": "post_reset_login_backend", "value": "None", "line_number": -1 } @@ -1415,13 +1415,13 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "fields", - "value": "None", + "name": "reset_url_token", + "value": "'set-password'", "line_number": -1 } }, @@ -1435,9 +1435,9 @@ "Django", "4.0" ], - "name": "form_class", - "value": "", - "line_number": 319 + "name": "success_url", + "value": "reverse_lazy('password_reset_complete')", + "line_number": -1 } }, { @@ -1445,14 +1445,14 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "4.0" ], - "name": "form_class", - "value": "", - "line_number": 163 + "name": "template_name", + "value": "'registration/password_reset_confirm.html'", + "line_number": -1 } }, { @@ -1460,29 +1460,29 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "PasswordResetConfirmView", "django.contrib.auth.views", "Django", "4.0" ], - "name": "form_class", - "value": "", - "line_number": 363 - } + "name": "title", + "value": "gettext_lazy('Enter new password')", + "line_number": -1 + } }, { "model": "cbv.klassattribute", "pk": null, "fields": { "klass": [ - "BaseDeleteView", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "form_class", - "value": "", - "line_number": 502 + "name": "token_generator", + "value": "", + "line_number": -1 } }, { @@ -1490,14 +1490,14 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "PasswordResetDoneView", "django.contrib.auth.views", "Django", "4.0" ], - "name": "form_class", - "value": "", - "line_number": 241 + "name": "template_name", + "value": "'registration/password_reset_done.html'", + "line_number": -1 } }, { @@ -1505,13 +1505,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "form_class", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password reset sent')", "line_number": -1 } }, @@ -1525,8 +1525,8 @@ "Django", "4.0" ], - "name": "from_email", - "value": "None", + "name": "email_template_name", + "value": "'registration/password_reset_email.html'", "line_number": -1 } }, @@ -1535,13 +1535,13 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "__getattribute__", - "value": "", + "name": "extra_email_context", + "value": "None", "line_number": -1 } }, @@ -1550,14 +1550,14 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "__getattribute__", - "value": "", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 241 } }, { @@ -1570,7 +1570,7 @@ "Django", "4.0" ], - "name": "html_email_template_name", + "name": "from_email", "value": "None", "line_number": -1 } @@ -1580,13 +1580,13 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "PasswordResetView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "http_method_names", - "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", + "name": "html_email_template_name", + "value": "None", "line_number": -1 } }, @@ -1595,13 +1595,13 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "__init__", - "value": "", + "name": "subject_template_name", + "value": "'registration/password_reset_subject.txt'", "line_number": -1 } }, @@ -1610,13 +1610,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "PasswordResetView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "__init__", - "value": "", + "name": "success_url", + "value": "reverse_lazy('password_reset_done')", "line_number": -1 } }, @@ -1625,13 +1625,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "initial", - "value": "{}", + "name": "template_name", + "value": "'registration/password_reset_form.html'", "line_number": -1 } }, @@ -1640,13 +1640,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "PasswordResetView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "login_url", - "value": "None", + "name": "title", + "value": "gettext_lazy('Password reset')", "line_number": -1 } }, @@ -1655,13 +1655,13 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordResetView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "make_object_list", - "value": "False", + "name": "token_generator", + "value": "", "line_number": -1 } }, @@ -1670,13 +1670,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "model", - "value": "None", + "name": "success_url_allowed_hosts", + "value": "set()", "line_number": -1 } }, @@ -1685,13 +1685,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "model", - "value": "None", + "name": "args", + "value": "", "line_number": -1 } }, @@ -1700,13 +1700,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "month", - "value": "None", + "name": "__cause__", + "value": "", "line_number": -1 } }, @@ -1715,13 +1715,13 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "month_format", - "value": "'%b'", + "name": "__context__", + "value": "", "line_number": -1 } }, @@ -1730,13 +1730,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "next_page", - "value": "None", + "name": "__delattr__", + "value": "", "line_number": -1 } }, @@ -1745,13 +1745,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "next_page", - "value": "None", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -1760,13 +1760,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "ordering", - "value": "None", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -1775,13 +1775,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "page_kwarg", - "value": "'page'", + "name": "__reduce__", + "value": "", "line_number": -1 } }, @@ -1790,13 +1790,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "paginate_by", - "value": "None", + "name": "__repr__", + "value": "", "line_number": -1 } }, @@ -1805,13 +1805,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "paginate_orphans", - "value": "0", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -1820,14 +1820,14 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "paginator_class", - "value": "", - "line_number": 27 + "name": "__setstate__", + "value": "", + "line_number": -1 } }, { @@ -1835,13 +1835,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "pattern_name", - "value": "None", + "name": "__str__", + "value": "", "line_number": -1 } }, @@ -1850,13 +1850,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "permanent", - "value": "False", + "name": "__suppress_context__", + "value": "", "line_number": -1 } }, @@ -1865,13 +1865,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "permission_denied_message", - "value": "''", + "name": "__traceback__", + "value": "", "line_number": -1 } }, @@ -1880,13 +1880,13 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "GenericViewError", + "django.views.generic", "Django", "4.0" ], - "name": "permission_required", - "value": "None", + "name": "with_traceback", + "value": "", "line_number": -1 } }, @@ -1895,13 +1895,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "ContextMixin", + "django.views.generic.base", "Django", "4.0" ], - "name": "pk_url_kwarg", - "value": "'pk'", + "name": "extra_context", + "value": "None", "line_number": -1 } }, @@ -1910,13 +1910,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "4.0" ], - "name": "post_reset_login", - "value": "False", + "name": "pattern_name", + "value": "None", "line_number": -1 } }, @@ -1925,13 +1925,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "4.0" ], - "name": "post_reset_login_backend", - "value": "None", + "name": "permanent", + "value": "False", "line_number": -1 } }, @@ -1940,13 +1940,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "RedirectView", + "django.views.generic.base", "Django", "4.0" ], - "name": "prefix", - "value": "None", + "name": "query_string", + "value": "False", "line_number": -1 } }, @@ -1955,13 +1955,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "4.0" ], - "name": "query_pk_and_slug", - "value": "False", + "name": "url", + "value": "None", "line_number": -1 } }, @@ -1970,12 +1970,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "4.0" ], - "name": "queryset", + "name": "content_type", "value": "None", "line_number": -1 } @@ -1985,14 +1985,14 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "4.0" ], - "name": "queryset", - "value": "None", - "line_number": -1 + "name": "response_class", + "value": "", + "line_number": 138 } }, { @@ -2000,13 +2000,13 @@ "pk": null, "fields": { "klass": [ - "RedirectView", + "TemplateResponseMixin", "django.views.generic.base", "Django", "4.0" ], - "name": "query_string", - "value": "False", + "name": "template_engine", + "value": "None", "line_number": -1 } }, @@ -2015,13 +2015,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "4.0" ], - "name": "raise_exception", - "value": "False", + "name": "template_name", + "value": "None", "line_number": -1 } }, @@ -2030,13 +2030,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "View", + "django.views.generic.base", "Django", "4.0" ], - "name": "redirect_authenticated_user", - "value": "False", + "name": "http_method_names", + "value": "['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']", "line_number": -1 } }, @@ -2045,13 +2045,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "template_name_suffix", + "value": "'_archive'", "line_number": -1 } }, @@ -2060,13 +2060,13 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "context_object_name", + "value": "'latest'", "line_number": -1 } }, @@ -2075,13 +2075,13 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "redirect_field_name", - "value": "'next'", + "name": "allow_empty", + "value": "False", "line_number": -1 } }, @@ -2090,13 +2090,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseDateListView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "__reduce__", - "value": "", + "name": "date_list_period", + "value": "'year'", "line_number": -1 } }, @@ -2105,13 +2105,13 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "__reduce__", - "value": "", + "name": "date_list_period", + "value": "'day'", "line_number": -1 } }, @@ -2120,13 +2120,13 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "__repr__", - "value": "", + "name": "date_list_period", + "value": "'month'", "line_number": -1 } }, @@ -2135,13 +2135,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "__repr__", - "value": "", + "name": "make_object_list", + "value": "False", "line_number": -1 } }, @@ -2150,13 +2150,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DateMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "reset_url_token", - "value": "'set-password'", + "name": "allow_future", + "value": "False", "line_number": -1 } }, @@ -2165,14 +2165,14 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DateMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "response_class", - "value": "", - "line_number": 138 + "name": "date_field", + "value": "None", + "line_number": -1 } }, { @@ -2180,13 +2180,13 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "__setattr__", - "value": "", + "name": "uses_datetime_field", + "value": "", "line_number": -1 } }, @@ -2195,13 +2195,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "DayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "__setattr__", - "value": "", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2210,13 +2210,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "DayMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "__setstate__", - "value": "", + "name": "day", + "value": "None", "line_number": -1 } }, @@ -2225,13 +2225,13 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "DayMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "__setstate__", - "value": "", + "name": "day_format", + "value": "'%d'", "line_number": -1 } }, @@ -2240,13 +2240,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "slug_field", - "value": "'slug'", + "name": "template_name_suffix", + "value": "'_archive_month'", "line_number": -1 } }, @@ -2255,13 +2255,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "slug_url_kwarg", - "value": "'slug'", + "name": "month", + "value": "None", "line_number": -1 } }, @@ -2270,13 +2270,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MonthMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "__str__", - "value": "", + "name": "month_format", + "value": "'%b'", "line_number": -1 } }, @@ -2285,13 +2285,13 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "__str__", - "value": "", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -2300,13 +2300,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "subject_template_name", - "value": "'registration/password_reset_subject.txt'", + "name": "template_name_suffix", + "value": "'_archive_week'", "line_number": -1 } }, @@ -2315,12 +2315,12 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "WeekMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "success_url", + "name": "week", "value": "None", "line_number": -1 } @@ -2330,13 +2330,13 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "WeekMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "success_url", - "value": "None", + "name": "week_format", + "value": "'%U'", "line_number": -1 } }, @@ -2345,13 +2345,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "YearArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "success_url", - "value": "reverse_lazy('password_change_done')", + "name": "template_name_suffix", + "value": "'_archive_year'", "line_number": -1 } }, @@ -2360,13 +2360,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_complete')", + "name": "year", + "value": "None", "line_number": -1 } }, @@ -2375,13 +2375,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "success_url", - "value": "reverse_lazy('password_reset_done')", + "name": "year_format", + "value": "'%Y'", "line_number": -1 } }, @@ -2390,13 +2390,13 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "4.0" ], - "name": "success_url_allowed_hosts", - "value": "set()", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -2405,13 +2405,13 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "4.0" ], - "name": "__suppress_context__", - "value": "", + "name": "model", + "value": "None", "line_number": -1 } }, @@ -2420,13 +2420,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "4.0" ], - "name": "__suppress_context__", - "value": "", + "name": "pk_url_kwarg", + "value": "'pk'", "line_number": -1 } }, @@ -2435,13 +2435,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "4.0" ], - "name": "template_engine", - "value": "None", + "name": "query_pk_and_slug", + "value": "False", "line_number": -1 } }, @@ -2450,13 +2450,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "4.0" ], - "name": "template_name", - "value": "'registration/password_change_form.html'", + "name": "queryset", + "value": "None", "line_number": -1 } }, @@ -2465,13 +2465,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "4.0" ], - "name": "template_name", - "value": "'registration/password_reset_confirm.html'", + "name": "slug_field", + "value": "'slug'", "line_number": -1 } }, @@ -2480,13 +2480,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "4.0" ], - "name": "template_name", - "value": "'registration/password_reset_complete.html'", + "name": "slug_url_kwarg", + "value": "'slug'", "line_number": -1 } }, @@ -2495,13 +2495,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "4.0" ], - "name": "template_name", - "value": "'registration/password_reset_done.html'", + "name": "template_name_field", + "value": "None", "line_number": -1 } }, @@ -2510,13 +2510,13 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "4.0" ], - "name": "template_name", - "value": "None", + "name": "template_name_suffix", + "value": "'_detail'", "line_number": -1 } }, @@ -2525,14 +2525,14 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseDeleteView", + "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name", - "value": "'registration/login.html'", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 502 } }, { @@ -2540,13 +2540,13 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "CreateView", + "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name", - "value": "'registration/logged_out.html'", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -2555,13 +2555,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "DeleteView", + "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name", - "value": "'registration/password_change_done.html'", + "name": "template_name_suffix", + "value": "'_confirm_delete'", "line_number": -1 } }, @@ -2570,13 +2570,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "DeleteViewCustomDeleteWarning", + "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name", - "value": "'registration/password_reset_form.html'", + "name": "args", + "value": "", "line_number": -1 } }, @@ -2585,13 +2585,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DeleteViewCustomDeleteWarning", + "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name_field", - "value": "None", + "name": "__cause__", + "value": "", "line_number": -1 } }, @@ -2600,13 +2600,13 @@ "pk": null, "fields": { "klass": [ - "DayArchiveView", - "django.views.generic.dates", + "DeleteViewCustomDeleteWarning", + "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "__context__", + "value": "", "line_number": -1 } }, @@ -2615,13 +2615,13 @@ "pk": null, "fields": { "klass": [ - "YearArchiveView", - "django.views.generic.dates", + "DeleteViewCustomDeleteWarning", + "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name_suffix", - "value": "'_archive_year'", + "name": "__delattr__", + "value": "", "line_number": -1 } }, @@ -2630,13 +2630,13 @@ "pk": null, "fields": { "klass": [ - "WeekArchiveView", - "django.views.generic.dates", + "DeleteViewCustomDeleteWarning", + "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name_suffix", - "value": "'_archive_week'", + "name": "__getattribute__", + "value": "", "line_number": -1 } }, @@ -2645,13 +2645,13 @@ "pk": null, "fields": { "klass": [ - "MonthArchiveView", - "django.views.generic.dates", + "DeleteViewCustomDeleteWarning", + "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name_suffix", - "value": "'_archive_month'", + "name": "__init__", + "value": "", "line_number": -1 } }, @@ -2660,13 +2660,13 @@ "pk": null, "fields": { "klass": [ - "TodayArchiveView", - "django.views.generic.dates", + "DeleteViewCustomDeleteWarning", + "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name_suffix", - "value": "'_archive_day'", + "name": "__reduce__", + "value": "", "line_number": -1 } }, @@ -2675,13 +2675,13 @@ "pk": null, "fields": { "klass": [ - "CreateView", + "DeleteViewCustomDeleteWarning", "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "__repr__", + "value": "", "line_number": -1 } }, @@ -2690,13 +2690,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DeleteViewCustomDeleteWarning", + "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name_suffix", - "value": "'_detail'", + "name": "__setattr__", + "value": "", "line_number": -1 } }, @@ -2705,13 +2705,13 @@ "pk": null, "fields": { "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", + "DeleteViewCustomDeleteWarning", + "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name_suffix", - "value": "'_archive'", + "name": "__setstate__", + "value": "", "line_number": -1 } }, @@ -2720,13 +2720,13 @@ "pk": null, "fields": { "klass": [ - "DeleteView", + "DeleteViewCustomDeleteWarning", "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name_suffix", - "value": "'_confirm_delete'", + "name": "__str__", + "value": "", "line_number": -1 } }, @@ -2735,13 +2735,13 @@ "pk": null, "fields": { "klass": [ - "UpdateView", + "DeleteViewCustomDeleteWarning", "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "__suppress_context__", + "value": "", "line_number": -1 } }, @@ -2750,13 +2750,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "DeleteViewCustomDeleteWarning", + "django.views.generic.edit", "Django", "4.0" ], - "name": "template_name_suffix", - "value": "'_list'", + "name": "__traceback__", + "value": "", "line_number": -1 } }, @@ -2765,13 +2765,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "DeleteViewCustomDeleteWarning", + "django.views.generic.edit", "Django", "4.0" ], - "name": "title", - "value": "gettext_lazy('Password reset')", + "name": "with_traceback", + "value": "", "line_number": -1 } }, @@ -2780,13 +2780,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "DeletionMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "title", - "value": "gettext_lazy('Password reset complete')", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2795,13 +2795,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "title", - "value": "gettext_lazy('Password reset sent')", + "name": "form_class", + "value": "None", "line_number": -1 } }, @@ -2810,13 +2810,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "title", - "value": "gettext_lazy('Password change')", + "name": "initial", + "value": "{}", "line_number": -1 } }, @@ -2825,13 +2825,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "title", - "value": "gettext_lazy('Enter new password')", + "name": "prefix", + "value": "None", "line_number": -1 } }, @@ -2840,13 +2840,13 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "title", - "value": "gettext_lazy('Password change successful')", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -2855,13 +2855,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "token_generator", - "value": "", + "name": "fields", + "value": "None", "line_number": -1 } }, @@ -2870,13 +2870,13 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "UpdateView", + "django.views.generic.edit", "Django", "4.0" ], - "name": "token_generator", - "value": "", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -2885,13 +2885,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "__traceback__", - "value": "", + "name": "allow_empty", + "value": "True", "line_number": -1 } }, @@ -2900,13 +2900,13 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "__traceback__", - "value": "", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -2915,12 +2915,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "url", + "name": "model", "value": "None", "line_number": -1 } @@ -2930,13 +2930,13 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "uses_datetime_field", - "value": "", + "name": "ordering", + "value": "None", "line_number": -1 } }, @@ -2945,13 +2945,13 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "week", - "value": "None", + "name": "page_kwarg", + "value": "'page'", "line_number": -1 } }, @@ -2960,13 +2960,13 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "week_format", - "value": "'%U'", + "name": "paginate_by", + "value": "None", "line_number": -1 } }, @@ -2975,13 +2975,13 @@ "pk": null, "fields": { "klass": [ - "GenericViewError", - "django.views.generic", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "with_traceback", - "value": "", + "name": "paginate_orphans", + "value": "0", "line_number": -1 } }, @@ -2990,14 +2990,14 @@ "pk": null, "fields": { "klass": [ - "DeleteViewCustomDeleteWarning", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "with_traceback", - "value": "", - "line_number": -1 + "name": "paginator_class", + "value": "", + "line_number": 27 } }, { @@ -3005,12 +3005,12 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "year", + "name": "queryset", "value": "None", "line_number": -1 } @@ -3020,13 +3020,13 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "year_format", - "value": "'%Y'", + "name": "template_name_suffix", + "value": "'_list'", "line_number": -1 } }, @@ -3035,16 +3035,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], - "name": "_allowed_methods", - "docstring": "", - "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", + "name": "get_login_url", + "docstring": "Override this method to override the login_url attribute.", + "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", "kwargs": "self", - "line_number": 117 + "line_number": 20 } }, { @@ -3052,16 +3052,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], - "name": "as_view", - "docstring": "Main entry point for a request-response process.", - "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\n 'The method name %s is not accepted as a keyword argument '\n 'to %s().' % (key, cls.__name__)\n )\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n self.setup(request, *args, **kwargs)\n if not hasattr(self, 'request'):\n raise AttributeError(\n \"%s instance has no 'request' attribute. Did you override \"\n \"setup() and forget to call super()?\" % cls.__name__\n )\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # __name__ and __qualname__ are intentionally left unchanged as\n # view_class should be used to robustly determine the name of the view\n # instead.\n view.__doc__ = cls.__doc__\n view.__module__ = cls.__module__\n view.__annotations__ = cls.dispatch.__annotations__\n # Copy possible attributes set by decorators, e.g. @csrf_exempt, from\n # the dispatch method.\n view.__dict__.update(cls.dispatch.__dict__)\n return view\n", - "kwargs": "cls, **initkwargs", - "line_number": 47 + "name": "get_permission_denied_message", + "docstring": "Override this method to override the permission_denied_message attribute.", + "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "kwargs": "self", + "line_number": 32 } }, { @@ -3069,16 +3069,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], - "name": "delete", - "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", - "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 208 + "name": "get_redirect_field_name", + "docstring": "Override this method to override the redirect_field_name attribute.", + "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", + "kwargs": "self", + "line_number": 38 } }, { @@ -3086,16 +3086,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], - "name": "delete", + "name": "handle_no_permission", "docstring": "", - "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 214 + "code": "def handle_no_permission(self):\n if self.raise_exception or self.request.user.is_authenticated:\n raise PermissionDenied(self.get_permission_denied_message())\n path = self.request.build_absolute_uri()\n resolved_login_url = resolve_url(self.get_login_url())\n # If the login url is the same scheme and net location then use the\n # path as the \"next\" url.\n login_scheme, login_netloc = urlparse(resolved_login_url)[:2]\n current_scheme, current_netloc = urlparse(path)[:2]\n if (\n (not login_scheme or login_scheme == current_scheme) and\n (not login_netloc or login_netloc == current_netloc)\n ):\n path = self.request.get_full_path()\n return redirect_to_login(\n path,\n resolved_login_url,\n self.get_redirect_field_name(),\n )\n", + "kwargs": "self", + "line_number": 44 } }, { @@ -3103,16 +3103,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", + "LoginRequiredMixin", "django.contrib.auth.mixins", "Django", "4.0" ], "name": "dispatch", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 124 + "line_number": 68 } }, { @@ -3137,16 +3137,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 224 + "name": "get_permission_required", + "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", + "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required,)\n else:\n perms = self.permission_required\n return perms\n", + "kwargs": "self", + "line_number": 78 } }, { @@ -3154,16 +3154,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n if 'uidb64' not in kwargs or 'token' not in kwargs:\n raise ImproperlyConfigured(\n \"The URL path must contain 'uidb64' and 'token' parameters.\"\n )\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == self.reset_url_token:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, self.reset_url_token)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, *args, **kwargs", - "line_number": 261 + "name": "has_permission", + "docstring": "Override this method to customize the way permissions are checked.", + "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "kwargs": "self", + "line_number": 94 } }, { @@ -3171,16 +3171,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], "name": "dispatch", "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 343 + "code": "def dispatch(self, request, *args, **kwargs):\n user_test_result = self.get_test_func()()\n if not user_test_result:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 124 } }, { @@ -3188,16 +3188,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 366 + "name": "get_test_func", + "docstring": "Override this method to use a different test_func method.", + "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", + "kwargs": "self", + "line_number": 118 } }, { @@ -3205,16 +3205,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], - "name": "dispatch", + "name": "test_func", "docstring": "", - "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 120 + "code": "def test_func(self):\n raise NotImplementedError(\n '{} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "kwargs": "self", + "line_number": 113 } }, { @@ -3222,16 +3222,16 @@ "pk": null, "fields": { "klass": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", + "LoginView", + "django.contrib.auth.views", "Django", "4.0" ], "name": "dispatch", "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n if not request.user.is_authenticated:\n return self.handle_no_permission()\n return super().dispatch(request, *args, **kwargs)\n", + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n if self.redirect_authenticated_user and self.request.user.is_authenticated:\n redirect_to = self.get_success_url()\n if redirect_to == self.request.path:\n raise ValueError(\n \"Redirection loop for authenticated user detected. Check that \"\n \"your LOGIN_REDIRECT_URL doesn't point to a login page.\"\n )\n return HttpResponseRedirect(redirect_to)\n return super().dispatch(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 68 + "line_number": 52 } }, { @@ -3239,16 +3239,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "LoginView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "dispatch", - "docstring": "", - "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 93 + "name": "form_valid", + "docstring": "Security check complete. Log the user in.", + "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 94 } }, { @@ -3261,11 +3261,11 @@ "Django", "4.0" ], - "name": "dispatch", - "docstring": "", - "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n if self.redirect_authenticated_user and self.request.user.is_authenticated:\n redirect_to = self.get_success_url()\n if redirect_to == self.request.path:\n raise ValueError(\n \"Redirection loop for authenticated user detected. Check that \"\n \"your LOGIN_REDIRECT_URL doesn't point to a login page.\"\n )\n return HttpResponseRedirect(redirect_to)\n return super().dispatch(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 52 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 99 } }, { @@ -3273,16 +3273,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "form_invalid", - "docstring": "If the form is invalid, render the invalid form.", - "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", - "kwargs": "self, form", - "line_number": 61 + "name": "get_default_redirect_url", + "docstring": "Return the default redirect URL.", + "code": "def get_default_redirect_url(self):\n \"\"\"Return the default redirect URL.\"\"\"\n return resolve_url(self.next_page or settings.LOGIN_REDIRECT_URL)\n", + "kwargs": "self", + "line_number": 82 } }, { @@ -3290,16 +3290,16 @@ "pk": null, "fields": { "klass": [ - "BaseDeleteView", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", - "kwargs": "self, form", - "line_number": 268 + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "kwargs": "self", + "line_number": 86 } }, { @@ -3307,16 +3307,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "form_valid", - "docstring": "If the form is valid, save the associated model.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 125 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "kwargs": "self", + "line_number": 89 } }, { @@ -3324,16 +3324,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "LoginView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 57 + "name": "get_redirect_url", + "docstring": "Return the user-originating redirect URL if it's safe.", + "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", + "kwargs": "self", + "line_number": 69 } }, { @@ -3341,16 +3341,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetView", + "LoginView", "django.contrib.auth.views", "Django", "4.0" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 228 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n return self.get_redirect_url() or self.get_default_redirect_url()\n", + "kwargs": "self", + "line_number": 66 } }, { @@ -3358,16 +3358,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", + "LogoutView", "django.contrib.auth.views", "Django", "4.0" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 307 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(never_cache)\ndef dispatch(self, request, *args, **kwargs):\n auth_logout(request)\n next_page = self.get_next_page()\n if next_page:\n # Redirect to this page until the session has been cleared.\n return HttpResponseRedirect(next_page)\n return super().dispatch(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 120 } }, { @@ -3375,16 +3375,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", + "LogoutView", "django.contrib.auth.views", "Django", "4.0" ], - "name": "form_valid", - "docstring": "If the form is valid, redirect to the supplied URL.", - "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", - "kwargs": "self, form", - "line_number": 354 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 158 } }, { @@ -3392,16 +3392,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "LogoutView", "django.contrib.auth.views", "Django", "4.0" ], - "name": "form_valid", - "docstring": "Security check complete. Log the user in.", - "code": "def form_valid(self, form):\n \"\"\"Security check complete. Log the user in.\"\"\"\n auth_login(self.request, form.get_user())\n return HttpResponseRedirect(self.get_success_url())\n", - "kwargs": "self, form", - "line_number": 94 + "name": "get_next_page", + "docstring": "", + "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", + "kwargs": "self", + "line_number": 133 } }, { @@ -3409,16 +3409,16 @@ "pk": null, "fields": { "klass": [ - "BaseDetailView", - "django.views.generic.detail", + "LogoutView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "name": "post", + "docstring": "Logout may be done via POST.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 105 + "line_number": 129 } }, { @@ -3426,16 +3426,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get", + "name": "dispatch", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 191 + "code": "@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 366 } }, { @@ -3443,16 +3443,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 133 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(csrf_protect)\n@method_decorator(login_required)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 343 } }, { @@ -3460,16 +3460,16 @@ "pk": null, "fields": { "klass": [ - "TemplateView", - "django.views.generic.base", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 161 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n form.save()\n # Updating the password logs out all other sessions for the user\n # except the current one.\n update_session_auth_hash(self.request, form.user)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 354 } }, { @@ -3477,16 +3477,16 @@ "pk": null, "fields": { "klass": [ - "BaseListView", - "django.views.generic.list", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get", - "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = not self.object_list\n if is_empty:\n raise Http404(_('Empty list and “%(class_name)s.allow_empty” is False.') % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 141 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "kwargs": "self", + "line_number": 349 } }, { @@ -3494,16 +3494,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get", + "name": "get_context_data", "docstring": "", - "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 298 + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context.update({\n 'title': self.title,\n **(self.extra_context or {})\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 203 } }, { @@ -3511,16 +3511,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 190 + "name": "get_context_data", + "docstring": "", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 331 } }, { @@ -3528,16 +3528,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get", - "docstring": "Handle GET requests: instantiate a blank version of the form.", - "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 168 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(sensitive_post_parameters())\n@method_decorator(never_cache)\ndef dispatch(self, *args, **kwargs):\n if 'uidb64' not in kwargs or 'token' not in kwargs:\n raise ImproperlyConfigured(\n \"The URL path must contain 'uidb64' and 'token' parameters.\"\n )\n self.validlink = False\n self.user = self.get_user(kwargs['uidb64'])\n if self.user is not None:\n token = kwargs['token']\n if token == self.reset_url_token:\n session_token = self.request.session.get(INTERNAL_RESET_SESSION_TOKEN)\n if self.token_generator.check_token(self.user, session_token):\n # If the token is valid, display the password reset form.\n self.validlink = True\n return super().dispatch(*args, **kwargs)\n else:\n if self.token_generator.check_token(self.user, token):\n # Store the token in the session and redirect to the\n # password reset form at a URL without the token. That\n # avoids the possibility of leaking the token in the\n # HTTP Referer header.\n self.request.session[INTERNAL_RESET_SESSION_TOKEN] = token\n redirect_url = self.request.path.replace(token, self.reset_url_token)\n return HttpResponseRedirect(redirect_url)\n # Display the \"Password reset unsuccessful\" page.\n return self.render_to_response(self.get_context_data())\n", + "kwargs": "self, *args, **kwargs", + "line_number": 261 } }, { @@ -3545,16 +3545,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get_allow_empty", - "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", - "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", - "kwargs": "self", - "line_number": 97 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n user = form.save()\n del self.request.session[INTERNAL_RESET_SESSION_TOKEN]\n if self.post_reset_login:\n auth_login(self.request, user, self.post_reset_login_backend)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 307 } }, { @@ -3562,16 +3562,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get_allow_future", - "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", - "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", - "kwargs": "self", - "line_number": 240 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", + "kwargs": "self, **kwargs", + "line_number": 314 } }, { @@ -3579,16 +3579,16 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", - "django.views.generic.base", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get_context_data", - "docstring": "", - "code": "def get_context_data(self, **kwargs):\n kwargs.setdefault('view', self)\n if self.extra_context is not None:\n kwargs.update(self.extra_context)\n return kwargs\n", - "kwargs": "self, **kwargs", - "line_number": 22 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", + "kwargs": "self", + "line_number": 302 } }, { @@ -3596,16 +3596,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get_context_data", - "docstring": "Insert the single object into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", - "kwargs": "self, **kwargs", - "line_number": 91 + "name": "get_user", + "docstring": "", + "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", + "kwargs": "self, uidb64", + "line_number": 293 } }, { @@ -3613,16 +3613,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "PasswordResetView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", - "kwargs": "self, **kwargs", - "line_number": 65 + "name": "dispatch", + "docstring": "", + "code": "@method_decorator(csrf_protect)\ndef dispatch(self, *args, **kwargs):\n return super().dispatch(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 224 } }, { @@ -3630,16 +3630,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "PasswordResetView", + "django.contrib.auth.views", "Django", "4.0" ], - "name": "get_context_data", - "docstring": "Get the context for this view.", - "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", - "kwargs": "self, *, object_list=None, **kwargs", - "line_number": 113 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n opts = {\n 'use_https': self.request.is_secure(),\n 'token_generator': self.token_generator,\n 'from_email': self.from_email,\n 'email_template_name': self.email_template_name,\n 'subject_template_name': self.subject_template_name,\n 'request': self.request,\n 'html_email_template_name': self.html_email_template_name,\n 'extra_email_context': self.extra_email_context,\n }\n form.save(**opts)\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 228 } }, { @@ -3647,33 +3647,33 @@ "pk": null, "fields": { "klass": [ - "LoginView", + "SuccessURLAllowedHostsMixin", "django.contrib.auth.views", "Django", "4.0" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n self.redirect_field_name: self.get_redirect_url(),\n 'site': current_site,\n 'site_name': current_site.name,\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 99 - } + "name": "get_success_url_allowed_hosts", + "docstring": "", + "code": "def get_success_url_allowed_hosts(self):\n return {self.request.get_host(), *self.success_url_allowed_hosts}\n", + "kwargs": "self", + "line_number": 36 + } }, { "model": "cbv.method", "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "ContextMixin", + "django.views.generic.base", "Django", "4.0" ], "name": "get_context_data", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n current_site = get_current_site(self.request)\n context.update({\n 'site': current_site,\n 'site_name': current_site.name,\n 'title': _('Logged out'),\n **(self.extra_context or {})\n })\n return context\n", + "code": "def get_context_data(self, **kwargs):\n kwargs.setdefault('view', self)\n if self.extra_context is not None:\n kwargs.update(self.extra_context)\n return kwargs\n", "kwargs": "self, **kwargs", - "line_number": 158 + "line_number": 22 } }, { @@ -3681,16 +3681,16 @@ "pk": null, "fields": { "klass": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "4.0" ], - "name": "get_context_data", + "name": "delete", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context.update({\n 'title': self.title,\n **(self.extra_context or {})\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 203 + "code": "def delete(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 214 } }, { @@ -3698,16 +3698,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "4.0" ], - "name": "get_context_data", + "name": "get", "docstring": "", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n context['login_url'] = resolve_url(settings.LOGIN_URL)\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 331 + "code": "def get(self, request, *args, **kwargs):\n url = self.get_redirect_url(*args, **kwargs)\n if url:\n if self.permanent:\n return HttpResponsePermanentRedirect(url)\n else:\n return HttpResponseRedirect(url)\n else:\n logger.warning(\n 'Gone: %s', request.path,\n extra={'status_code': 410, 'request': request}\n )\n return HttpResponseGone()\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 191 } }, { @@ -3715,16 +3715,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "RedirectView", + "django.views.generic.base", "Django", "4.0" ], - "name": "get_context_data", - "docstring": "Insert the form into the context dict.", - "code": "def get_context_data(self, **kwargs):\n context = super().get_context_data(**kwargs)\n if self.validlink:\n context['validlink'] = True\n else:\n context.update({\n 'form': None,\n 'title': _('Password reset unsuccessful'),\n 'validlink': False,\n })\n return context\n", - "kwargs": "self, **kwargs", - "line_number": 314 + "name": "get_redirect_url", + "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", + "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", + "kwargs": "self, *args, **kwargs", + "line_number": 173 } }, { @@ -3732,16 +3732,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "RedirectView", + "django.views.generic.base", "Django", "4.0" ], - "name": "get_context_object_name", - "docstring": "Get the name of the item to be used in the context.", - "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", - "kwargs": "self, object_list", - "line_number": 104 + "name": "head", + "docstring": "", + "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 205 } }, { @@ -3749,16 +3749,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "4.0" ], - "name": "get_context_object_name", - "docstring": "Get the name to use for the object.", - "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", - "kwargs": "self, obj", - "line_number": 82 + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 211 } }, { @@ -3766,16 +3766,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "4.0" ], - "name": "_get_current_day", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", - "kwargs": "self, date", - "line_number": 161 + "name": "patch", + "docstring": "", + "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 220 } }, { @@ -3783,16 +3783,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "4.0" ], - "name": "_get_current_month", - "docstring": "Return the start date of the previous interval.", - "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", - "kwargs": "self, date", - "line_number": 115 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 208 } }, { @@ -3800,16 +3800,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "RedirectView", + "django.views.generic.base", "Django", "4.0" ], - "name": "_get_current_week", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", - "kwargs": "self, date", - "line_number": 210 + "name": "put", + "docstring": "", + "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 217 } }, { @@ -3817,16 +3817,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "4.0" ], - "name": "_get_current_year", - "docstring": "Return the start date of the current interval.", - "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", - "kwargs": "self, date", - "line_number": 63 + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", + "kwargs": "self", + "line_number": 144 } }, { @@ -3834,16 +3834,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "4.0" ], - "name": "_get_dated_items", - "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", - "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", - "kwargs": "self, date", - "line_number": 540 + "name": "render_to_response", + "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", + "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", + "kwargs": "self, context, **response_kwargs", + "line_number": 128 } }, { @@ -3851,16 +3851,16 @@ "pk": null, "fields": { "klass": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "4.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n return self._get_dated_items(datetime.date.today())\n", - "kwargs": "self", - "line_number": 565 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n context = self.get_context_data(**kwargs)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 161 } }, { @@ -3868,16 +3868,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "4.0" ], - "name": "get_dated_items", - "docstring": "Obtain the list of dates and items.", - "code": "def get_dated_items(self):\n \"\"\"Obtain the list of dates and items.\"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", + "name": "_allowed_methods", + "docstring": "", + "code": "def _allowed_methods(self):\n return [m.upper() for m in self.http_method_names if hasattr(self, m)]\n", "kwargs": "self", - "line_number": 307 + "line_number": 117 } }, { @@ -3885,16 +3885,16 @@ "pk": null, "fields": { "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "4.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", - "kwargs": "self", - "line_number": 381 + "name": "as_view", + "docstring": "Main entry point for a request-response process.", + "code": "@classonlymethod\ndef as_view(cls, **initkwargs):\n \"\"\"Main entry point for a request-response process.\"\"\"\n for key in initkwargs:\n if key in cls.http_method_names:\n raise TypeError(\n 'The method name %s is not accepted as a keyword argument '\n 'to %s().' % (key, cls.__name__)\n )\n if not hasattr(cls, key):\n raise TypeError(\"%s() received an invalid keyword %r. as_view \"\n \"only accepts arguments that are already \"\n \"attributes of the class.\" % (cls.__name__, key))\n def view(request, *args, **kwargs):\n self = cls(**initkwargs)\n self.setup(request, *args, **kwargs)\n if not hasattr(self, 'request'):\n raise AttributeError(\n \"%s instance has no 'request' attribute. Did you override \"\n \"setup() and forget to call super()?\" % cls.__name__\n )\n return self.dispatch(request, *args, **kwargs)\n view.view_class = cls\n view.view_initkwargs = initkwargs\n # __name__ and __qualname__ are intentionally left unchanged as\n # view_class should be used to robustly determine the name of the view\n # instead.\n view.__doc__ = cls.__doc__\n view.__module__ = cls.__module__\n view.__annotations__ = cls.dispatch.__annotations__\n # Copy possible attributes set by decorators, e.g. @csrf_exempt, from\n # the dispatch method.\n view.__dict__.update(cls.dispatch.__dict__)\n return view\n", + "kwargs": "cls, **initkwargs", + "line_number": 47 } }, { @@ -3902,16 +3902,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "4.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", - "kwargs": "self", - "line_number": 402 + "name": "dispatch", + "docstring": "", + "code": "def dispatch(self, request, *args, **kwargs):\n # Try to dispatch to the right method; if a method doesn't exist,\n # defer to the error handler. Also defer to the error handler if the\n # request method isn't on the approved list.\n if request.method.lower() in self.http_method_names:\n handler = getattr(self, request.method.lower(), self.http_method_not_allowed)\n else:\n handler = self.http_method_not_allowed\n return handler(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 93 } }, { @@ -3919,16 +3919,16 @@ "pk": null, "fields": { "klass": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "4.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_choices = {'%W': '1', '%U': '0', '%V': '1'}\n try:\n week_start = week_choices[week_format]\n except KeyError:\n raise ValueError('Unknown week format %r. Choices are: %s' % (\n week_format,\n ', '.join(sorted(week_choices)),\n ))\n year_format = self.get_year_format()\n if week_format == '%V' and year_format != '%G':\n raise ValueError(\n \"ISO week directive '%s' is incompatible with the year \"\n \"directive '%s'. Use the ISO year '%%G' instead.\" % (\n week_format, year_format,\n )\n )\n date = _date_from_string(year, year_format, week_start, '%w', week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", - "kwargs": "self", - "line_number": 481 + "name": "http_method_not_allowed", + "docstring": "", + "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 103 } }, { @@ -3936,16 +3936,16 @@ "pk": null, "fields": { "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "4.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", - "kwargs": "self", - "line_number": 447 + "name": "__init__", + "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", + "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", + "kwargs": "self, **kwargs", + "line_number": 37 } }, { @@ -3953,16 +3953,16 @@ "pk": null, "fields": { "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "4.0" ], - "name": "get_dated_items", - "docstring": "Return (date_list, items, extra_context) for this request.", - "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", - "kwargs": "self", - "line_number": 528 + "name": "options", + "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", + "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response.headers['Allow'] = ', '.join(self._allowed_methods())\n response.headers['Content-Length'] = '0'\n return response\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 110 } }, { @@ -3970,33 +3970,33 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "4.0" ], - "name": "get_dated_queryset", - "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", - "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = not qs if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n })\n return qs\n", - "kwargs": "self, **lookup", - "line_number": 318 - } + "name": "setup", + "docstring": "Initialize attributes shared by all view methods.", + "code": "def setup(self, request, *args, **kwargs):\n \"\"\"Initialize attributes shared by all view methods.\"\"\"\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 85 + } }, { "model": "cbv.method", "pk": null, "fields": { "klass": [ - "DateMixin", + "BaseArchiveIndexView", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_date_field", - "docstring": "Get the name of the date field to be used to filter by.", - "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n qs = self.get_dated_queryset()\n date_list = self.get_date_list(qs, ordering='DESC')\n if not date_list:\n qs = qs.none()\n return (date_list, qs, {})\n", "kwargs": "self", - "line_number": 234 + "line_number": 381 } }, { @@ -4004,16 +4004,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_date_list", - "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", - "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n raise Http404(\n _(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': queryset.model._meta.verbose_name_plural,\n }\n )\n return date_list\n", - "kwargs": "self, queryset, date_type=None, ordering='ASC'", - "line_number": 351 + "name": "get_object", + "docstring": "Get the object this request displays.", + "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", + "kwargs": "self, queryset=None", + "line_number": 580 } }, { @@ -4026,11 +4026,11 @@ "Django", "4.0" ], - "name": "get_date_list_period", - "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or\n'day'.", - "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or\n 'day'.\n \"\"\"\n return self.date_list_period\n", - "kwargs": "self", - "line_number": 344 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.date_list, self.object_list, extra_context = self.get_dated_items()\n context = self.get_context_data(\n object_list=self.object_list,\n date_list=self.date_list,\n **extra_context\n )\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 298 } }, { @@ -4038,16 +4038,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_day", - "docstring": "Return the day for which this view should display data.", - "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "name": "get_dated_items", + "docstring": "Obtain the list of dates and items.", + "code": "def get_dated_items(self):\n \"\"\"Obtain the list of dates and items.\"\"\"\n raise NotImplementedError('A DateView must provide an implementation of get_dated_items()')\n", "kwargs": "self", - "line_number": 132 + "line_number": 307 } }, { @@ -4055,16 +4055,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "BaseDateListView", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_day_format", - "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", - "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", - "kwargs": "self", - "line_number": 125 + "name": "get_dated_queryset", + "docstring": "Get a queryset properly filtered according to `allow_future` and any\nextra lookup kwargs.", + "code": "def get_dated_queryset(self, **lookup):\n \"\"\"\n Get a queryset properly filtered according to `allow_future` and any\n extra lookup kwargs.\n \"\"\"\n qs = self.get_queryset().filter(**lookup)\n date_field = self.get_date_field()\n allow_future = self.get_allow_future()\n allow_empty = self.get_allow_empty()\n paginate_by = self.get_paginate_by(qs)\n if not allow_future:\n now = timezone.now() if self.uses_datetime_field else timezone_today()\n qs = qs.filter(**{'%s__lte' % date_field: now})\n if not allow_empty:\n # When pagination is enabled, it's better to do a cheap query\n # than to load the unpaginated queryset in memory.\n is_empty = not qs if paginate_by is None else not qs.exists()\n if is_empty:\n raise Http404(_(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n })\n return qs\n", + "kwargs": "self, **lookup", + "line_number": 318 } }, { @@ -4072,16 +4072,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_default_redirect_url", - "docstring": "Return the default redirect URL.", - "code": "def get_default_redirect_url(self):\n \"\"\"Return the default redirect URL.\"\"\"\n return resolve_url(self.next_page or settings.LOGIN_REDIRECT_URL)\n", - "kwargs": "self", - "line_number": 82 + "name": "get_date_list", + "docstring": "Get a date list by calling `queryset.dates/datetimes()`, checking\nalong the way for empty lists that aren't allowed.", + "code": "def get_date_list(self, queryset, date_type=None, ordering='ASC'):\n \"\"\"\n Get a date list by calling `queryset.dates/datetimes()`, checking\n along the way for empty lists that aren't allowed.\n \"\"\"\n date_field = self.get_date_field()\n allow_empty = self.get_allow_empty()\n if date_type is None:\n date_type = self.get_date_list_period()\n if self.uses_datetime_field:\n date_list = queryset.datetimes(date_field, date_type, ordering)\n else:\n date_list = queryset.dates(date_field, date_type, ordering)\n if date_list is not None and not date_list and not allow_empty:\n raise Http404(\n _(\"No %(verbose_name_plural)s available\") % {\n 'verbose_name_plural': queryset.model._meta.verbose_name_plural,\n }\n )\n return date_list\n", + "kwargs": "self, queryset, date_type=None, ordering='ASC'", + "line_number": 351 } }, { @@ -4089,16 +4089,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_form", - "docstring": "Return an instance of the form to be used in this view.", - "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", - "kwargs": "self, form_class=None", - "line_number": 31 + "name": "get_date_list_period", + "docstring": "Get the aggregation period for the list of dates: 'year', 'month', or\n'day'.", + "code": "def get_date_list_period(self):\n \"\"\"\n Get the aggregation period for the list of dates: 'year', 'month', or\n 'day'.\n \"\"\"\n return self.date_list_period\n", + "kwargs": "self", + "line_number": 344 } }, { @@ -4106,16 +4106,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", + "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", "kwargs": "self", - "line_number": 27 + "line_number": 311 } }, { @@ -4123,16 +4123,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_form_class", - "docstring": "Return the form class to use in this view.", - "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif getattr(self, 'object', None) is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", - "kwargs": "self", - "line_number": 76 + "name": "_get_dated_items", + "docstring": "Do the actual heavy lifting of getting the dated items; this accepts a\ndate object so that TodayArchiveView can be trivial.", + "code": "def _get_dated_items(self, date):\n \"\"\"\n Do the actual heavy lifting of getting the dated items; this accepts a\n date object so that TodayArchiveView can be trivial.\n \"\"\"\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'day': date,\n 'previous_day': self.get_previous_day(date),\n 'next_day': self.get_next_day(date),\n 'previous_month': self.get_previous_month(date),\n 'next_month': self.get_next_month(date)\n })\n", + "kwargs": "self, date", + "line_number": 540 } }, { @@ -4140,16 +4140,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_form_class", - "docstring": "Return the form class to use.", - "code": "def get_form_class(self):\n return self.authentication_form or self.form_class\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n return self._get_dated_items(date)\n", "kwargs": "self", - "line_number": 86 + "line_number": 528 } }, { @@ -4157,16 +4157,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n month = self.get_month()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_month(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n return (date_list, qs, {\n 'month': date,\n 'next_month': self.get_next_month(date),\n 'previous_month': self.get_previous_month(date),\n })\n", "kwargs": "self", - "line_number": 37 + "line_number": 447 } }, { @@ -4174,16 +4174,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.user\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n return self._get_dated_items(datetime.date.today())\n", "kwargs": "self", - "line_number": 302 + "line_number": 565 } }, { @@ -4191,16 +4191,16 @@ "pk": null, "fields": { "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['user'] = self.request.user\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n week = self.get_week()\n date_field = self.get_date_field()\n week_format = self.get_week_format()\n week_choices = {'%W': '1', '%U': '0', '%V': '1'}\n try:\n week_start = week_choices[week_format]\n except KeyError:\n raise ValueError('Unknown week format %r. Choices are: %s' % (\n week_format,\n ', '.join(sorted(week_choices)),\n ))\n year_format = self.get_year_format()\n if week_format == '%V' and year_format != '%G':\n raise ValueError(\n \"ISO week directive '%s' is incompatible with the year \"\n \"directive '%s'. Use the ISO year '%%G' instead.\" % (\n week_format, year_format,\n )\n )\n date = _date_from_string(year, year_format, week_start, '%w', week, week_format)\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_week(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n return (None, qs, {\n 'week': date,\n 'next_week': self.get_next_week(date),\n 'previous_week': self.get_previous_week(date),\n })\n", "kwargs": "self", - "line_number": 349 + "line_number": 481 } }, { @@ -4208,16 +4208,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n kwargs = super().get_form_kwargs()\n kwargs['request'] = self.request\n return kwargs\n", + "name": "get_dated_items", + "docstring": "Return (date_list, items, extra_context) for this request.", + "code": "def get_dated_items(self):\n \"\"\"Return (date_list, items, extra_context) for this request.\"\"\"\n year = self.get_year()\n date_field = self.get_date_field()\n date = _date_from_string(year, self.get_year_format())\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(self._get_next_year(date))\n lookup_kwargs = {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n qs = self.get_dated_queryset(**lookup_kwargs)\n date_list = self.get_date_list(qs)\n if not self.get_make_object_list():\n # We need this to be a queryset since parent classes introspect it\n # to find information about the model.\n qs = qs.none()\n return (date_list, qs, {\n 'year': date,\n 'next_year': self.get_next_year(date),\n 'previous_year': self.get_previous_year(date),\n })\n", "kwargs": "self", - "line_number": 89 + "line_number": 402 } }, { @@ -4225,16 +4225,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_form_kwargs", - "docstring": "Return the keyword arguments for instantiating the form.", - "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "name": "get_make_object_list", + "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", + "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", "kwargs": "self", - "line_number": 105 + "line_number": 430 } }, { @@ -4242,16 +4242,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_initial", - "docstring": "Return the initial data to use for forms on this view.", - "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", + "name": "get_allow_future", + "docstring": "Return `True` if the view should be allowed to display objects from\nthe future.", + "code": "def get_allow_future(self):\n \"\"\"\n Return `True` if the view should be allowed to display objects from\n the future.\n \"\"\"\n return self.allow_future\n", "kwargs": "self", - "line_number": 19 + "line_number": 240 } }, { @@ -4259,16 +4259,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "DateMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_login_url", - "docstring": "Override this method to override the login_url attribute.", - "code": "def get_login_url(self):\n \"\"\"\n Override this method to override the login_url attribute.\n \"\"\"\n login_url = self.login_url or settings.LOGIN_URL\n if not login_url:\n raise ImproperlyConfigured(\n '{0} is missing the login_url attribute. Define {0}.login_url, settings.LOGIN_URL, or override '\n '{0}.get_login_url().'.format(self.__class__.__name__)\n )\n return str(login_url)\n", + "name": "get_date_field", + "docstring": "Get the name of the date field to be used to filter by.", + "code": "def get_date_field(self):\n \"\"\"Get the name of the date field to be used to filter by.\"\"\"\n if self.date_field is None:\n raise ImproperlyConfigured(\"%s.date_field is required.\" % self.__class__.__name__)\n return self.date_field\n", "kwargs": "self", - "line_number": 20 + "line_number": 234 } }, { @@ -4276,16 +4276,16 @@ "pk": null, "fields": { "klass": [ - "BaseYearArchiveView", + "DateMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_make_object_list", - "docstring": "Return `True` if this view should contain the full list of objects in\nthe given year.", - "code": "def get_make_object_list(self):\n \"\"\"\n Return `True` if this view should contain the full list of objects in\n the given year.\n \"\"\"\n return self.make_object_list\n", - "kwargs": "self", - "line_number": 430 + "name": "_make_date_lookup_arg", + "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", + "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value)\n return value\n", + "kwargs": "self, value", + "line_number": 260 } }, { @@ -4293,16 +4293,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DateMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_month", - "docstring": "Return the month for which this view should display data.", - "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", - "kwargs": "self", - "line_number": 80 + "name": "_make_single_date_lookup", + "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", + "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", + "kwargs": "self, date", + "line_number": 273 } }, { @@ -4310,16 +4310,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_month_format", - "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", - "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", - "kwargs": "self", - "line_number": 73 + "name": "_get_current_day", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_day(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date\n", + "kwargs": "self, date", + "line_number": 161 } }, { @@ -4332,11 +4332,11 @@ "Django", "4.0" ], - "name": "_get_next_day", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", - "kwargs": "self, date", - "line_number": 153 + "name": "get_day", + "docstring": "Return the day for which this view should display data.", + "code": "def get_day(self):\n \"\"\"Return the day for which this view should display data.\"\"\"\n day = self.day\n if day is None:\n try:\n day = self.kwargs['day']\n except KeyError:\n try:\n day = self.request.GET['day']\n except KeyError:\n raise Http404(_(\"No day specified\"))\n return day\n", + "kwargs": "self", + "line_number": 132 } }, { @@ -4349,11 +4349,11 @@ "Django", "4.0" ], - "name": "get_next_day", - "docstring": "Get the next valid day.", - "code": "def get_next_day(self, date):\n \"\"\"Get the next valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", - "kwargs": "self, date", - "line_number": 145 + "name": "get_day_format", + "docstring": "Get a day format string in strptime syntax to be used to parse the day\nfrom url variables.", + "code": "def get_day_format(self):\n \"\"\"\n Get a day format string in strptime syntax to be used to parse the day\n from url variables.\n \"\"\"\n return self.day_format\n", + "kwargs": "self", + "line_number": 125 } }, { @@ -4361,16 +4361,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "_get_next_month", + "name": "_get_next_day", "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "code": "def _get_next_day(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n return date + datetime.timedelta(days=1)\n", "kwargs": "self, date", - "line_number": 101 + "line_number": 153 } }, { @@ -4378,33 +4378,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "DayMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_next_month", - "docstring": "Get the next valid month.", - "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "name": "get_next_day", + "docstring": "Get the next valid day.", + "code": "def get_next_day(self, date):\n \"\"\"Get the next valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='day')\n", "kwargs": "self, date", - "line_number": 93 - } -}, -{ - "model": "cbv.method", - "pk": null, - "fields": { - "klass": [ - "LogoutView", - "django.contrib.auth.views", - "Django", - "4.0" - ], - "name": "get_next_page", - "docstring": "", - "code": "def get_next_page(self):\n if self.next_page is not None:\n next_page = resolve_url(self.next_page)\n elif settings.LOGOUT_REDIRECT_URL:\n next_page = resolve_url(settings.LOGOUT_REDIRECT_URL)\n else:\n next_page = self.next_page\n if (self.redirect_field_name in self.request.POST or\n self.redirect_field_name in self.request.GET):\n next_page = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name)\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=next_page,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n # Security check -- Ensure the user-originating redirection URL is\n # safe.\n if not url_is_safe:\n next_page = self.request.path\n return next_page\n", - "kwargs": "self", - "line_number": 133 + "line_number": 145 } }, { @@ -4412,16 +4395,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "DayMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "_get_next_week", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "name": "get_previous_day", + "docstring": "Get the previous valid day.", + "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", "kwargs": "self, date", - "line_number": 199 + "line_number": 149 } }, { @@ -4429,16 +4412,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "MonthMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_next_week", - "docstring": "Get the next valid week.", - "code": "def get_next_week(self, date):\n \"\"\"Get the next valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "name": "_get_current_month", + "docstring": "Return the start date of the previous interval.", + "code": "def _get_current_month(self, date):\n \"\"\"Return the start date of the previous interval.\"\"\"\n return date.replace(day=1)\n", "kwargs": "self, date", - "line_number": 191 + "line_number": 115 } }, { @@ -4446,16 +4429,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "_get_next_year", - "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", - "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", - "kwargs": "self, date", - "line_number": 52 + "name": "get_month", + "docstring": "Return the month for which this view should display data.", + "code": "def get_month(self):\n \"\"\"Return the month for which this view should display data.\"\"\"\n month = self.month\n if month is None:\n try:\n month = self.kwargs['month']\n except KeyError:\n try:\n month = self.request.GET['month']\n except KeyError:\n raise Http404(_(\"No month specified\"))\n return month\n", + "kwargs": "self", + "line_number": 80 } }, { @@ -4463,16 +4446,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", + "MonthMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_next_year", - "docstring": "Get the next valid year.", - "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", - "kwargs": "self, date", - "line_number": 44 + "name": "get_month_format", + "docstring": "Get a month format string in strptime syntax to be used to parse the\nmonth from url variables.", + "code": "def get_month_format(self):\n \"\"\"\n Get a month format string in strptime syntax to be used to parse the\n month from url variables.\n \"\"\"\n return self.month_format\n", + "kwargs": "self", + "line_number": 73 } }, { @@ -4480,16 +4463,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateDetailView", + "MonthMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_object", - "docstring": "Get the object this request displays.", - "code": "def get_object(self, queryset=None):\n \"\"\"Get the object this request displays.\"\"\"\n year = self.get_year()\n month = self.get_month()\n day = self.get_day()\n date = _date_from_string(year, self.get_year_format(),\n month, self.get_month_format(),\n day, self.get_day_format())\n # Use a custom queryset if provided\n qs = self.get_queryset() if queryset is None else queryset\n if not self.get_allow_future() and date > datetime.date.today():\n raise Http404(_(\n \"Future %(verbose_name_plural)s not available because \"\n \"%(class_name)s.allow_future is False.\"\n ) % {\n 'verbose_name_plural': qs.model._meta.verbose_name_plural,\n 'class_name': self.__class__.__name__,\n })\n # Filter down a queryset from self.queryset using the date from the\n # URL. This'll get passed as the queryset to DetailView.get_object,\n # which'll handle the 404\n lookup_kwargs = self._make_single_date_lookup(date)\n qs = qs.filter(**lookup_kwargs)\n return super().get_object(queryset=qs)\n", - "kwargs": "self, queryset=None", - "line_number": 580 + "name": "_get_next_month", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_month(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n if date.month == 12:\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n else:\n return date.replace(month=date.month + 1, day=1)\n", + "kwargs": "self, date", + "line_number": 101 } }, { @@ -4497,16 +4480,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MonthMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_object", - "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", - "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\n \"Generic detail view %s must be called with either an object \"\n \"pk or a slug in the URLconf.\" % self.__class__.__name__\n )\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", - "kwargs": "self, queryset=None", - "line_number": 20 + "name": "get_next_month", + "docstring": "Get the next valid month.", + "code": "def get_next_month(self, date):\n \"\"\"Get the next valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='month')\n", + "kwargs": "self, date", + "line_number": 93 } }, { @@ -4514,16 +4497,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "MonthMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset.", - "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", - "kwargs": "self", - "line_number": 50 + "name": "get_previous_month", + "docstring": "Get the previous valid month.", + "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "kwargs": "self, date", + "line_number": 97 } }, { @@ -4531,16 +4514,16 @@ "pk": null, "fields": { "klass": [ - "BaseDateListView", + "WeekMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_ordering", - "docstring": "Return the field or fields to use for ordering the queryset; use the\ndate field by default.", - "code": "def get_ordering(self):\n \"\"\"\n Return the field or fields to use for ordering the queryset; use the\n date field by default.\n \"\"\"\n return '-%s' % self.get_date_field() if self.ordering is None else self.ordering\n", - "kwargs": "self", - "line_number": 311 + "name": "_get_current_week", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_week(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date - datetime.timedelta(self._get_weekday(date))\n", + "kwargs": "self, date", + "line_number": 210 } }, { @@ -4548,16 +4531,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_paginate_by", - "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", - "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", - "kwargs": "self, queryset", - "line_number": 77 + "name": "_get_next_week", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_week(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date + datetime.timedelta(days=7 - self._get_weekday(date))\n except OverflowError:\n raise Http404(_(\"Date out of range\"))\n", + "kwargs": "self, date", + "line_number": 199 } }, { @@ -4565,16 +4548,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_paginate_orphans", - "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", - "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", - "kwargs": "self", - "line_number": 90 + "name": "get_next_week", + "docstring": "Get the next valid week.", + "code": "def get_next_week(self, date):\n \"\"\"Get the next valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='week')\n", + "kwargs": "self, date", + "line_number": 191 } }, { @@ -4582,16 +4565,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "WeekMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_paginator", - "docstring": "Return an instance of the paginator for this view.", - "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", - "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", - "line_number": 83 + "name": "get_previous_week", + "docstring": "Get the previous valid week.", + "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "kwargs": "self, date", + "line_number": 195 } }, { @@ -4599,16 +4582,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_permission_denied_message", - "docstring": "Override this method to override the permission_denied_message attribute.", - "code": "def get_permission_denied_message(self):\n \"\"\"\n Override this method to override the permission_denied_message attribute.\n \"\"\"\n return self.permission_denied_message\n", + "name": "get_week", + "docstring": "Return the week for which this view should display data.", + "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", "kwargs": "self", - "line_number": 32 + "line_number": 178 } }, { @@ -4616,16 +4599,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "WeekMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_permission_required", - "docstring": "Override this method to override the permission_required attribute.\nMust return an iterable.", - "code": "def get_permission_required(self):\n \"\"\"\n Override this method to override the permission_required attribute.\n Must return an iterable.\n \"\"\"\n if self.permission_required is None:\n raise ImproperlyConfigured(\n '{0} is missing the permission_required attribute. Define {0}.permission_required, or override '\n '{0}.get_permission_required().'.format(self.__class__.__name__)\n )\n if isinstance(self.permission_required, str):\n perms = (self.permission_required,)\n else:\n perms = self.permission_required\n return perms\n", - "kwargs": "self", - "line_number": 78 + "name": "_get_weekday", + "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", + "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format in {'%W', '%V'}: # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", + "kwargs": "self, date", + "line_number": 214 } }, { @@ -4633,16 +4616,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "WeekMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_prefix", - "docstring": "Return the prefix to use for forms.", - "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", + "name": "get_week_format", + "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", + "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", "kwargs": "self", - "line_number": 23 + "line_number": 171 } }, { @@ -4650,16 +4633,16 @@ "pk": null, "fields": { "klass": [ - "DayMixin", + "YearMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_previous_day", - "docstring": "Get the previous valid day.", - "code": "def get_previous_day(self, date):\n \"\"\"Get the previous valid day.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='day')\n", + "name": "_get_current_year", + "docstring": "Return the start date of the current interval.", + "code": "def _get_current_year(self, date):\n \"\"\"Return the start date of the current interval.\"\"\"\n return date.replace(month=1, day=1)\n", "kwargs": "self, date", - "line_number": 149 + "line_number": 63 } }, { @@ -4667,16 +4650,16 @@ "pk": null, "fields": { "klass": [ - "MonthMixin", + "YearMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_previous_month", - "docstring": "Get the previous valid month.", - "code": "def get_previous_month(self, date):\n \"\"\"Get the previous valid month.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='month')\n", + "name": "_get_next_year", + "docstring": "Return the start date of the next interval.\n\nThe interval is defined by start date <= item date < next start date.", + "code": "def _get_next_year(self, date):\n \"\"\"\n Return the start date of the next interval.\n The interval is defined by start date <= item date < next start date.\n \"\"\"\n try:\n return date.replace(year=date.year + 1, month=1, day=1)\n except ValueError:\n raise Http404(_(\"Date out of range\"))\n", "kwargs": "self, date", - "line_number": 97 + "line_number": 52 } }, { @@ -4684,16 +4667,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", + "YearMixin", "django.views.generic.dates", "Django", "4.0" ], - "name": "get_previous_week", - "docstring": "Get the previous valid week.", - "code": "def get_previous_week(self, date):\n \"\"\"Get the previous valid week.\"\"\"\n return _get_next_prev(self, date, is_previous=True, period='week')\n", + "name": "get_next_year", + "docstring": "Get the next valid year.", + "code": "def get_next_year(self, date):\n \"\"\"Get the next valid year.\"\"\"\n return _get_next_prev(self, date, is_previous=False, period='year')\n", "kwargs": "self, date", - "line_number": 195 + "line_number": 44 } }, { @@ -4718,16 +4701,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "YearMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_queryset", - "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", - "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "name": "get_year", + "docstring": "Return the year for which this view should display data.", + "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", "kwargs": "self", - "line_number": 21 + "line_number": 31 } }, { @@ -4735,16 +4718,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "4.0" ], - "name": "get_queryset", - "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", - "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", + "name": "get_year_format", + "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", + "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", "kwargs": "self", - "line_number": 58 + "line_number": 24 } }, { @@ -4752,16 +4735,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseDetailView", + "django.views.generic.detail", "Django", "4.0" ], - "name": "get_redirect_field_name", - "docstring": "Override this method to override the redirect_field_name attribute.", - "code": "def get_redirect_field_name(self):\n \"\"\"\n Override this method to override the redirect_field_name attribute.\n \"\"\"\n return self.redirect_field_name\n", - "kwargs": "self", - "line_number": 38 + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n context = self.get_context_data(object=self.object)\n return self.render_to_response(context)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 105 } }, { @@ -4769,16 +4752,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "4.0" ], - "name": "get_redirect_url", - "docstring": "Return the URL redirect to. Keyword arguments from the URL pattern\nmatch generating the redirect request are provided as kwargs to this\nmethod.", - "code": "def get_redirect_url(self, *args, **kwargs):\n \"\"\"\n Return the URL redirect to. Keyword arguments from the URL pattern\n match generating the redirect request are provided as kwargs to this\n method.\n \"\"\"\n if self.url:\n url = self.url % kwargs\n elif self.pattern_name:\n url = reverse(self.pattern_name, args=args, kwargs=kwargs)\n else:\n return None\n args = self.request.META.get('QUERY_STRING', '')\n if args and self.query_string:\n url = \"%s?%s\" % (url, args)\n return url\n", - "kwargs": "self, *args, **kwargs", - "line_number": 173 + "name": "get_context_data", + "docstring": "Insert the single object into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the single object into the context dict.\"\"\"\n context = {}\n if self.object:\n context['object'] = self.object\n context_object_name = self.get_context_object_name(self.object)\n if context_object_name:\n context[context_object_name] = self.object\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, **kwargs", + "line_number": 91 } }, { @@ -4786,16 +4769,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "4.0" ], - "name": "get_redirect_url", - "docstring": "Return the user-originating redirect URL if it's safe.", - "code": "def get_redirect_url(self):\n \"\"\"Return the user-originating redirect URL if it's safe.\"\"\"\n redirect_to = self.request.POST.get(\n self.redirect_field_name,\n self.request.GET.get(self.redirect_field_name, '')\n )\n url_is_safe = url_has_allowed_host_and_scheme(\n url=redirect_to,\n allowed_hosts=self.get_success_url_allowed_hosts(),\n require_https=self.request.is_secure(),\n )\n return redirect_to if url_is_safe else ''\n", - "kwargs": "self", - "line_number": 69 + "name": "get_context_object_name", + "docstring": "Get the name to use for the object.", + "code": "def get_context_object_name(self, obj):\n \"\"\"Get the name to use for the object.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif isinstance(obj, models.Model):\n return obj._meta.model_name\n else:\n return None\n", + "kwargs": "self, obj", + "line_number": 82 } }, { @@ -4808,11 +4791,28 @@ "Django", "4.0" ], - "name": "get_slug_field", - "docstring": "Get the name of a slug field to be used to look up by slug.", - "code": "def get_slug_field(self):\n \"\"\"Get the name of a slug field to be used to look up by slug.\"\"\"\n return self.slug_field\n", + "name": "get_object", + "docstring": "Return the object the view is displaying.\n\nRequire `self.queryset` and a `pk` or `slug` argument in the URLconf.\nSubclasses can override this to return any object.", + "code": "def get_object(self, queryset=None):\n \"\"\"\n Return the object the view is displaying.\n Require `self.queryset` and a `pk` or `slug` argument in the URLconf.\n Subclasses can override this to return any object.\n \"\"\"\n # Use a custom queryset if provided; this is required for subclasses\n # like DateDetailView\n if queryset is None:\n queryset = self.get_queryset()\n # Next, try looking up by primary key.\n pk = self.kwargs.get(self.pk_url_kwarg)\n slug = self.kwargs.get(self.slug_url_kwarg)\n if pk is not None:\n queryset = queryset.filter(pk=pk)\n # Next, try looking up by slug.\n if slug is not None and (pk is None or self.query_pk_and_slug):\n slug_field = self.get_slug_field()\n queryset = queryset.filter(**{slug_field: slug})\n # If none of those are defined, it's an error.\n if pk is None and slug is None:\n raise AttributeError(\n \"Generic detail view %s must be called with either an object \"\n \"pk or a slug in the URLconf.\" % self.__class__.__name__\n )\n try:\n # Get the single item from the filtered queryset\n obj = queryset.get()\n except queryset.model.DoesNotExist:\n raise Http404(_(\"No %(verbose_name)s found matching the query\") %\n {'verbose_name': queryset.model._meta.verbose_name})\n return obj\n", + "kwargs": "self, queryset=None", + "line_number": 20 + } +}, +{ + "model": "cbv.method", + "pk": null, + "fields": { + "klass": [ + "SingleObjectMixin", + "django.views.generic.detail", + "Django", + "4.0" + ], + "name": "get_queryset", + "docstring": "Return the `QuerySet` that will be used to look up the object.\n\nThis method is called by the default implementation of get_object() and\nmay not be called if get_object() is overridden.", + "code": "def get_queryset(self):\n \"\"\"\n Return the `QuerySet` that will be used to look up the object.\n This method is called by the default implementation of get_object() and\n may not be called if get_object() is overridden.\n \"\"\"\n if self.queryset is None:\n if self.model:\n return self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n return self.queryset.all()\n", "kwargs": "self", - "line_number": 78 + "line_number": 58 } }, { @@ -4820,16 +4820,16 @@ "pk": null, "fields": { "klass": [ - "LoginView", - "django.contrib.auth.views", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "4.0" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n return self.get_redirect_url() or self.get_default_redirect_url()\n", + "name": "get_slug_field", + "docstring": "Get the name of a slug field to be used to look up by slug.", + "code": "def get_slug_field(self):\n \"\"\"Get the name of a slug field to be used to look up by slug.\"\"\"\n return self.slug_field\n", "kwargs": "self", - "line_number": 66 + "line_number": 78 } }, { @@ -4837,16 +4837,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "4.0" ], - "name": "get_success_url", - "docstring": "", - "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response() is overridden. Return the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response() is overridden. Return the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif getattr(self, 'model', None) is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", "kwargs": "self", - "line_number": 222 + "line_number": 115 } }, { @@ -4854,16 +4854,16 @@ "pk": null, "fields": { "klass": [ - "FormMixin", + "BaseCreateView", "django.views.generic.edit", "Django", "4.0" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", - "kwargs": "self", - "line_number": 51 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = None\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 168 } }, { @@ -4871,16 +4871,16 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", + "BaseCreateView", "django.views.generic.edit", "Django", "4.0" ], - "name": "get_success_url", - "docstring": "Return the URL to redirect to after processing a valid form.", - "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", - "kwargs": "self", - "line_number": 112 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 172 } }, { @@ -4888,16 +4888,16 @@ "pk": null, "fields": { "klass": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "BaseDeleteView", + "django.views.generic.edit", "Django", "4.0" ], - "name": "get_success_url_allowed_hosts", - "docstring": "", - "code": "def get_success_url_allowed_hosts(self):\n return {self.request.get_host(), *self.success_url_allowed_hosts}\n", - "kwargs": "self", - "line_number": 36 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, form", + "line_number": 268 } }, { @@ -4905,16 +4905,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "BaseDeleteView", + "django.views.generic.edit", "Django", "4.0" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response() is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response() is overridden.\n \"\"\"\n if self.template_name is None:\n raise ImproperlyConfigured(\n \"TemplateResponseMixin requires either a definition of \"\n \"'template_name' or an implementation of 'get_template_names()'\")\n else:\n return [self.template_name]\n", - "kwargs": "self", - "line_number": 144 + "name": "__init__", + "docstring": "Initialize self. See help(type(self)) for accurate signature.", + "code": "def __init__(self, *args, **kwargs):\n # RemovedInDjango50Warning.\n if self.__class__.delete is not DeletionMixin.delete:\n warnings.warn(\n f'DeleteView uses FormMixin to handle POST requests. As a '\n f'consequence, any custom deletion logic in '\n f'{self.__class__.__name__}.delete() handler should be moved '\n f'to form_valid().',\n DeleteViewCustomDeleteWarning,\n stacklevel=2,\n )\n super().__init__(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 243 } }, { @@ -4922,16 +4922,16 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDeleteView", + "django.views.generic.edit", "Django", "4.0" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. May not be\ncalled if render_to_response() is overridden. Return the following list:\n\n* the value of ``template_name`` on the view (if provided)\n* the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n* ``/.html``", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. May not be\n called if render_to_response() is overridden. Return the following list:\n * the value of ``template_name`` on the view (if provided)\n * the contents of the ``template_name_field`` field on the\n object instance that the view is operating upon (if available)\n * ``/.html``\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If self.template_name_field is set, grab the value of the field\n # of that name from the object; this is the most specific template\n # name, if given.\n if self.object and self.template_name_field:\n name = getattr(self.object, self.template_name_field, None)\n if name:\n names.insert(0, name)\n # The least-specific option is the default /_detail.html;\n # only use this if the object in question is a model.\n if isinstance(self.object, models.Model):\n object_meta = self.object._meta\n names.append(\"%s/%s%s.html\" % (\n object_meta.app_label,\n object_meta.model_name,\n self.template_name_suffix\n ))\n elif getattr(self, 'model', None) is not None and issubclass(self.model, models.Model):\n names.append(\"%s/%s%s.html\" % (\n self.model._meta.app_label,\n self.model._meta.model_name,\n self.template_name_suffix\n ))\n # If we still haven't managed to find any template names, we should\n # re-raise the ImproperlyConfigured to alert the user.\n if not names:\n raise\n return names\n", - "kwargs": "self", - "line_number": 115 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n # Set self.object before the usual form processing flow.\n # Inlined because having DeletionMixin as the first base, for\n # get_success_url(), makes leveraging super() with ProcessFormView\n # overly complex.\n self.object = self.get_object()\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 256 } }, { @@ -4939,16 +4939,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseUpdateView", + "django.views.generic.edit", "Django", "4.0" ], - "name": "get_template_names", - "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", - "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n elif not names:\n raise ImproperlyConfigured(\n \"%(cls)s requires either a 'template_name' attribute \"\n \"or a get_queryset() method that returns a QuerySet.\" % {\n 'cls': self.__class__.__name__,\n }\n )\n return names\n", - "kwargs": "self", - "line_number": 165 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().get(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 190 } }, { @@ -4956,16 +4956,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "BaseUpdateView", + "django.views.generic.edit", "Django", "4.0" ], - "name": "get_test_func", - "docstring": "Override this method to use a different test_func method.", - "code": "def get_test_func(self):\n \"\"\"\n Override this method to use a different test_func method.\n \"\"\"\n return self.test_func\n", - "kwargs": "self", - "line_number": 118 + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 194 } }, { @@ -4973,16 +4973,16 @@ "pk": null, "fields": { "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "DeletionMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "get_user", - "docstring": "", - "code": "def get_user(self, uidb64):\n try:\n # urlsafe_base64_decode() decodes to bytestring\n uid = urlsafe_base64_decode(uidb64).decode()\n user = UserModel._default_manager.get(pk=uid)\n except (TypeError, ValueError, OverflowError, UserModel.DoesNotExist, ValidationError):\n user = None\n return user\n", - "kwargs": "self, uidb64", - "line_number": 293 + "name": "delete", + "docstring": "Call the delete() method on the fetched object and then redirect to the\nsuccess URL.", + "code": "def delete(self, request, *args, **kwargs):\n \"\"\"\n Call the delete() method on the fetched object and then redirect to the\n success URL.\n \"\"\"\n self.object = self.get_object()\n success_url = self.get_success_url()\n self.object.delete()\n return HttpResponseRedirect(success_url)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 208 } }, { @@ -4990,16 +4990,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "get_week", - "docstring": "Return the week for which this view should display data.", - "code": "def get_week(self):\n \"\"\"Return the week for which this view should display data.\"\"\"\n week = self.week\n if week is None:\n try:\n week = self.kwargs['week']\n except KeyError:\n try:\n week = self.request.GET['week']\n except KeyError:\n raise Http404(_(\"No week specified\"))\n return week\n", + "name": "get_success_url", + "docstring": "", + "code": "def get_success_url(self):\n if self.success_url:\n return self.success_url.format(**self.object.__dict__)\n else:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Provide a success_url.\")\n", "kwargs": "self", - "line_number": 178 + "line_number": 222 } }, { @@ -5007,16 +5007,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "_get_weekday", - "docstring": "Return the weekday for a given date.\n\nThe first day according to the week format is 0 and the last day is 6.", - "code": "def _get_weekday(self, date):\n \"\"\"\n Return the weekday for a given date.\n The first day according to the week format is 0 and the last day is 6.\n \"\"\"\n week_format = self.get_week_format()\n if week_format in {'%W', '%V'}: # week starts on Monday\n return date.weekday()\n elif week_format == '%U': # week starts on Sunday\n return (date.weekday() + 1) % 7\n else:\n raise ValueError(\"unknown week format: %s\" % week_format)\n", - "kwargs": "self, date", - "line_number": 214 + "name": "post", + "docstring": "", + "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 219 } }, { @@ -5024,16 +5024,16 @@ "pk": null, "fields": { "klass": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "get_week_format", - "docstring": "Get a week format string in strptime syntax to be used to parse the\nweek from url variables.", - "code": "def get_week_format(self):\n \"\"\"\n Get a week format string in strptime syntax to be used to parse the\n week from url variables.\n \"\"\"\n return self.week_format\n", - "kwargs": "self", - "line_number": 171 + "name": "form_invalid", + "docstring": "If the form is invalid, render the invalid form.", + "code": "def form_invalid(self, form):\n \"\"\"If the form is invalid, render the invalid form.\"\"\"\n return self.render_to_response(self.get_context_data(form=form))\n", + "kwargs": "self, form", + "line_number": 61 } }, { @@ -5041,16 +5041,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "get_year", - "docstring": "Return the year for which this view should display data.", - "code": "def get_year(self):\n \"\"\"Return the year for which this view should display data.\"\"\"\n year = self.year\n if year is None:\n try:\n year = self.kwargs['year']\n except KeyError:\n try:\n year = self.request.GET['year']\n except KeyError:\n raise Http404(_(\"No year specified\"))\n return year\n", - "kwargs": "self", - "line_number": 31 + "name": "form_valid", + "docstring": "If the form is valid, redirect to the supplied URL.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, redirect to the supplied URL.\"\"\"\n return HttpResponseRedirect(self.get_success_url())\n", + "kwargs": "self, form", + "line_number": 57 } }, { @@ -5058,16 +5058,16 @@ "pk": null, "fields": { "klass": [ - "YearMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "get_year_format", - "docstring": "Get a year format string in strptime syntax to be used to parse the\nyear from url variables.", - "code": "def get_year_format(self):\n \"\"\"\n Get a year format string in strptime syntax to be used to parse the\n year from url variables.\n \"\"\"\n return self.year_format\n", - "kwargs": "self", - "line_number": 24 + "name": "get_context_data", + "docstring": "Insert the form into the context dict.", + "code": "def get_context_data(self, **kwargs):\n \"\"\"Insert the form into the context dict.\"\"\"\n if 'form' not in kwargs:\n kwargs['form'] = self.get_form()\n return super().get_context_data(**kwargs)\n", + "kwargs": "self, **kwargs", + "line_number": 65 } }, { @@ -5075,16 +5075,16 @@ "pk": null, "fields": { "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "handle_no_permission", - "docstring": "", - "code": "def handle_no_permission(self):\n if self.raise_exception or self.request.user.is_authenticated:\n raise PermissionDenied(self.get_permission_denied_message())\n path = self.request.build_absolute_uri()\n resolved_login_url = resolve_url(self.get_login_url())\n # If the login url is the same scheme and net location then use the\n # path as the \"next\" url.\n login_scheme, login_netloc = urlparse(resolved_login_url)[:2]\n current_scheme, current_netloc = urlparse(path)[:2]\n if (\n (not login_scheme or login_scheme == current_scheme) and\n (not login_netloc or login_netloc == current_netloc)\n ):\n path = self.request.get_full_path()\n return redirect_to_login(\n path,\n resolved_login_url,\n self.get_redirect_field_name(),\n )\n", - "kwargs": "self", - "line_number": 44 + "name": "get_form", + "docstring": "Return an instance of the form to be used in this view.", + "code": "def get_form(self, form_class=None):\n \"\"\"Return an instance of the form to be used in this view.\"\"\"\n if form_class is None:\n form_class = self.get_form_class()\n return form_class(**self.get_form_kwargs())\n", + "kwargs": "self, form_class=None", + "line_number": 31 } }, { @@ -5092,16 +5092,16 @@ "pk": null, "fields": { "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "has_permission", - "docstring": "Override this method to customize the way permissions are checked.", - "code": "def has_permission(self):\n \"\"\"\n Override this method to customize the way permissions are checked.\n \"\"\"\n perms = self.get_permission_required()\n return self.request.user.has_perms(perms)\n", + "name": "get_form_class", + "docstring": "Return the form class to use.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use.\"\"\"\n return self.form_class\n", "kwargs": "self", - "line_number": 94 + "line_number": 27 } }, { @@ -5109,16 +5109,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "head", - "docstring": "", - "code": "def head(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 205 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = {\n 'initial': self.get_initial(),\n 'prefix': self.get_prefix(),\n }\n if self.request.method in ('POST', 'PUT'):\n kwargs.update({\n 'data': self.request.POST,\n 'files': self.request.FILES,\n })\n return kwargs\n", + "kwargs": "self", + "line_number": 37 } }, { @@ -5126,16 +5126,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "http_method_not_allowed", - "docstring": "", - "code": "def http_method_not_allowed(self, request, *args, **kwargs):\n logger.warning(\n 'Method Not Allowed (%s): %s', request.method, request.path,\n extra={'status_code': 405, 'request': request}\n )\n return HttpResponseNotAllowed(self._allowed_methods())\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 103 + "name": "get_initial", + "docstring": "Return the initial data to use for forms on this view.", + "code": "def get_initial(self):\n \"\"\"Return the initial data to use for forms on this view.\"\"\"\n return self.initial.copy()\n", + "kwargs": "self", + "line_number": 19 } }, { @@ -5143,16 +5143,16 @@ "pk": null, "fields": { "klass": [ - "BaseDeleteView", + "FormMixin", "django.views.generic.edit", "Django", "4.0" ], - "name": "__init__", - "docstring": "Initialize self. See help(type(self)) for accurate signature.", - "code": "def __init__(self, *args, **kwargs):\n # RemovedInDjango50Warning.\n if self.__class__.delete is not DeletionMixin.delete:\n warnings.warn(\n f'DeleteView uses FormMixin to handle POST requests. As a '\n f'consequence, any custom deletion logic in '\n f'{self.__class__.__name__}.delete() handler should be moved '\n f'to form_valid().',\n DeleteViewCustomDeleteWarning,\n stacklevel=2,\n )\n super().__init__(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 243 + "name": "get_prefix", + "docstring": "Return the prefix to use for forms.", + "code": "def get_prefix(self):\n \"\"\"Return the prefix to use for forms.\"\"\"\n return self.prefix\n", + "kwargs": "self", + "line_number": 23 } }, { @@ -5160,16 +5160,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "__init__", - "docstring": "Constructor. Called in the URLconf; can contain helpful extra\nkeyword arguments, and other things.", - "code": "def __init__(self, **kwargs):\n \"\"\"\n Constructor. Called in the URLconf; can contain helpful extra\n keyword arguments, and other things.\n \"\"\"\n # Go through keyword arguments, and either save their values to our\n # instance, or raise an error.\n for key, value in kwargs.items():\n setattr(self, key, value)\n", - "kwargs": "self, **kwargs", - "line_number": 37 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if not self.success_url:\n raise ImproperlyConfigured(\"No URL to redirect to. Provide a success_url.\")\n return str(self.success_url) # success_url may be lazy\n", + "kwargs": "self", + "line_number": 51 } }, { @@ -5177,16 +5177,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "_make_date_lookup_arg", - "docstring": "Convert a date into a datetime when the date field is a DateTimeField.\n\nWhen time zone support is enabled, `date` is assumed to be in the\ncurrent time zone, so that displayed items are consistent with the URL.", - "code": "def _make_date_lookup_arg(self, value):\n \"\"\"\n Convert a date into a datetime when the date field is a DateTimeField.\n When time zone support is enabled, `date` is assumed to be in the\n current time zone, so that displayed items are consistent with the URL.\n \"\"\"\n if self.uses_datetime_field:\n value = datetime.datetime.combine(value, datetime.time.min)\n if settings.USE_TZ:\n value = timezone.make_aware(value)\n return value\n", - "kwargs": "self, value", - "line_number": 260 + "name": "form_valid", + "docstring": "If the form is valid, save the associated model.", + "code": "def form_valid(self, form):\n \"\"\"If the form is valid, save the associated model.\"\"\"\n self.object = form.save()\n return super().form_valid(form)\n", + "kwargs": "self, form", + "line_number": 125 } }, { @@ -5194,16 +5194,16 @@ "pk": null, "fields": { "klass": [ - "DateMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "_make_single_date_lookup", - "docstring": "Get the lookup kwargs for filtering on a single date.\n\nIf the date field is a DateTimeField, we can't just filter on\ndate_field=date because that doesn't take the time into account.", - "code": "def _make_single_date_lookup(self, date):\n \"\"\"\n Get the lookup kwargs for filtering on a single date.\n If the date field is a DateTimeField, we can't just filter on\n date_field=date because that doesn't take the time into account.\n \"\"\"\n date_field = self.get_date_field()\n if self.uses_datetime_field:\n since = self._make_date_lookup_arg(date)\n until = self._make_date_lookup_arg(date + datetime.timedelta(days=1))\n return {\n '%s__gte' % date_field: since,\n '%s__lt' % date_field: until,\n }\n else:\n # Skip self._make_date_lookup_arg, it's a no-op in this branch.\n return {date_field: date}\n", - "kwargs": "self, date", - "line_number": 273 + "name": "get_form_class", + "docstring": "Return the form class to use in this view.", + "code": "def get_form_class(self):\n \"\"\"Return the form class to use in this view.\"\"\"\n if self.fields is not None and self.form_class:\n raise ImproperlyConfigured(\n \"Specifying both 'fields' and 'form_class' is not permitted.\"\n )\n if self.form_class:\n return self.form_class\n else:\n if self.model is not None:\n # If a model has been explicitly provided, use it\n model = self.model\n elif getattr(self, 'object', None) is not None:\n # If this view is operating on a single object, use\n # the class of that object\n model = self.object.__class__\n else:\n # Try to get a queryset and extract the model class\n # from that\n model = self.get_queryset().model\n if self.fields is None:\n raise ImproperlyConfigured(\n \"Using ModelFormMixin (base class of %s) without \"\n \"the 'fields' attribute is prohibited.\" % self.__class__.__name__\n )\n return model_forms.modelform_factory(model, fields=self.fields)\n", + "kwargs": "self", + "line_number": 76 } }, { @@ -5211,16 +5211,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 211 + "name": "get_form_kwargs", + "docstring": "Return the keyword arguments for instantiating the form.", + "code": "def get_form_kwargs(self):\n \"\"\"Return the keyword arguments for instantiating the form.\"\"\"\n kwargs = super().get_form_kwargs()\n if hasattr(self, 'object'):\n kwargs.update({'instance': self.object})\n return kwargs\n", + "kwargs": "self", + "line_number": 105 } }, { @@ -5228,16 +5228,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "ModelFormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "name": "options", - "docstring": "Handle responding to requests for the OPTIONS HTTP verb.", - "code": "def options(self, request, *args, **kwargs):\n \"\"\"Handle responding to requests for the OPTIONS HTTP verb.\"\"\"\n response = HttpResponse()\n response.headers['Allow'] = ', '.join(self._allowed_methods())\n response.headers['Content-Length'] = '0'\n return response\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 110 + "name": "get_success_url", + "docstring": "Return the URL to redirect to after processing a valid form.", + "code": "def get_success_url(self):\n \"\"\"Return the URL to redirect to after processing a valid form.\"\"\"\n if self.success_url:\n url = self.success_url.format(**self.object.__dict__)\n else:\n try:\n url = self.object.get_absolute_url()\n except AttributeError:\n raise ImproperlyConfigured(\n \"No URL to redirect to. Either provide a url or define\"\n \" a get_absolute_url method on the Model.\")\n return url\n", + "kwargs": "self", + "line_number": 112 } }, { @@ -5245,16 +5245,16 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "ProcessFormView", + "django.views.generic.edit", "Django", "4.0" ], - "name": "paginate_queryset", - "docstring": "Paginate the queryset, if needed.", - "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_('Page is not “last”, nor can it be converted to an int.'))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", - "kwargs": "self, queryset, page_size", - "line_number": 54 + "name": "get", + "docstring": "Handle GET requests: instantiate a blank version of the form.", + "code": "def get(self, request, *args, **kwargs):\n \"\"\"Handle GET requests: instantiate a blank version of the form.\"\"\"\n return self.render_to_response(self.get_context_data())\n", + "kwargs": "self, request, *args, **kwargs", + "line_number": 133 } }, { @@ -5262,16 +5262,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "4.0" ], - "name": "patch", - "docstring": "", - "code": "def patch(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", + "name": "post", + "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", + "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handle POST requests: instantiate a form instance with the passed\n POST variables and then check if it's valid.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 220 + "line_number": 137 } }, { @@ -5279,16 +5279,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "ProcessFormView", + "django.views.generic.edit", "Django", "4.0" ], - "name": "post", + "name": "put", "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 208 + "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", + "kwargs": "self, *args, **kwargs", + "line_number": 150 } }, { @@ -5296,16 +5296,16 @@ "pk": null, "fields": { "klass": [ - "LogoutView", - "django.contrib.auth.views", + "BaseListView", + "django.views.generic.list", "Django", "4.0" ], - "name": "post", - "docstring": "Logout may be done via POST.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"Logout may be done via POST.\"\"\"\n return self.get(request, *args, **kwargs)\n", + "name": "get", + "docstring": "", + "code": "def get(self, request, *args, **kwargs):\n self.object_list = self.get_queryset()\n allow_empty = self.get_allow_empty()\n if not allow_empty:\n # When pagination is enabled and object_list is a queryset,\n # it's better to do a cheap query than to load the unpaginated\n # queryset in memory.\n if self.get_paginate_by(self.object_list) is not None and hasattr(self.object_list, 'exists'):\n is_empty = not self.object_list.exists()\n else:\n is_empty = not self.object_list\n if is_empty:\n raise Http404(_('Empty list and “%(class_name)s.allow_empty” is False.') % {\n 'class_name': self.__class__.__name__,\n })\n context = self.get_context_data()\n return self.render_to_response(context)\n", "kwargs": "self, request, *args, **kwargs", - "line_number": 129 + "line_number": 141 } }, { @@ -5313,16 +5313,16 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = self.get_object()\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 194 + "name": "get_allow_empty", + "docstring": "Return ``True`` if the view should display empty lists and ``False``\nif a 404 should be raised instead.", + "code": "def get_allow_empty(self):\n \"\"\"\n Return ``True`` if the view should display empty lists and ``False``\n if a 404 should be raised instead.\n \"\"\"\n return self.allow_empty\n", + "kwargs": "self", + "line_number": 97 } }, { @@ -5330,16 +5330,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n \"\"\"\n Handle POST requests: instantiate a form instance with the passed\n POST variables and then check if it's valid.\n \"\"\"\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 137 + "name": "get_context_data", + "docstring": "Get the context for this view.", + "code": "def get_context_data(self, *, object_list=None, **kwargs):\n \"\"\"Get the context for this view.\"\"\"\n queryset = object_list if object_list is not None else self.object_list\n page_size = self.get_paginate_by(queryset)\n context_object_name = self.get_context_object_name(queryset)\n if page_size:\n paginator, page, queryset, is_paginated = self.paginate_queryset(queryset, page_size)\n context = {\n 'paginator': paginator,\n 'page_obj': page,\n 'is_paginated': is_paginated,\n 'object_list': queryset\n }\n else:\n context = {\n 'paginator': None,\n 'page_obj': None,\n 'is_paginated': False,\n 'object_list': queryset\n }\n if context_object_name is not None:\n context[context_object_name] = queryset\n context.update(kwargs)\n return super().get_context_data(**context)\n", + "kwargs": "self, *, object_list=None, **kwargs", + "line_number": 113 } }, { @@ -5347,16 +5347,16 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "post", - "docstring": "Handle POST requests: instantiate a form instance with the passed\nPOST variables and then check if it's valid.", - "code": "def post(self, request, *args, **kwargs):\n self.object = None\n return super().post(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 172 + "name": "get_context_object_name", + "docstring": "Get the name of the item to be used in the context.", + "code": "def get_context_object_name(self, object_list):\n \"\"\"Get the name of the item to be used in the context.\"\"\"\n if self.context_object_name:\n return self.context_object_name\n elif hasattr(object_list, 'model'):\n return '%s_list' % object_list.model._meta.model_name\n else:\n return None\n", + "kwargs": "self, object_list", + "line_number": 104 } }, { @@ -5364,16 +5364,16 @@ "pk": null, "fields": { "klass": [ - "BaseDeleteView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n # Set self.object before the usual form processing flow.\n # Inlined because having DeletionMixin as the first base, for\n # get_success_url(), makes leveraging super() with ProcessFormView\n # overly complex.\n self.object = self.get_object()\n form = self.get_form()\n if form.is_valid():\n return self.form_valid(form)\n else:\n return self.form_invalid(form)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 256 + "name": "get_ordering", + "docstring": "Return the field or fields to use for ordering the queryset.", + "code": "def get_ordering(self):\n \"\"\"Return the field or fields to use for ordering the queryset.\"\"\"\n return self.ordering\n", + "kwargs": "self", + "line_number": 50 } }, { @@ -5381,16 +5381,16 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "post", - "docstring": "", - "code": "def post(self, request, *args, **kwargs):\n return self.delete(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 219 + "name": "get_paginate_by", + "docstring": "Get the number of items to paginate by, or ``None`` for no pagination.", + "code": "def get_paginate_by(self, queryset):\n \"\"\"\n Get the number of items to paginate by, or ``None`` for no pagination.\n \"\"\"\n return self.paginate_by\n", + "kwargs": "self, queryset", + "line_number": 77 } }, { @@ -5398,16 +5398,16 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "put", - "docstring": "", - "code": "def put(self, request, *args, **kwargs):\n return self.get(request, *args, **kwargs)\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 217 + "name": "get_paginate_orphans", + "docstring": "Return the maximum number of orphans extend the last page by when\npaginating.", + "code": "def get_paginate_orphans(self):\n \"\"\"\n Return the maximum number of orphans extend the last page by when\n paginating.\n \"\"\"\n return self.paginate_orphans\n", + "kwargs": "self", + "line_number": 90 } }, { @@ -5415,16 +5415,16 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", - "django.views.generic.edit", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "put", - "docstring": "", - "code": "def put(self, *args, **kwargs):\n return self.post(*args, **kwargs)\n", - "kwargs": "self, *args, **kwargs", - "line_number": 150 + "name": "get_paginator", + "docstring": "Return an instance of the paginator for this view.", + "code": "def get_paginator(self, queryset, per_page, orphans=0,\n allow_empty_first_page=True, **kwargs):\n \"\"\"Return an instance of the paginator for this view.\"\"\"\n return self.paginator_class(\n queryset, per_page, orphans=orphans,\n allow_empty_first_page=allow_empty_first_page, **kwargs)\n", + "kwargs": "self, queryset, per_page, orphans=0, allow_empty_first_page=True, **kwargs", + "line_number": 83 } }, { @@ -5432,16 +5432,16 @@ "pk": null, "fields": { "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "render_to_response", - "docstring": "Return a response, using the `response_class` for this view, with a\ntemplate rendered with the given context.\n\nPass response_kwargs to the constructor of the response class.", - "code": "def render_to_response(self, context, **response_kwargs):\n \"\"\"\n Return a response, using the `response_class` for this view, with a\n template rendered with the given context.\n Pass response_kwargs to the constructor of the response class.\n \"\"\"\n response_kwargs.setdefault('content_type', self.content_type)\n return self.response_class(\n request=self.request,\n template=self.get_template_names(),\n context=context,\n using=self.template_engine,\n **response_kwargs\n )\n", - "kwargs": "self, context, **response_kwargs", - "line_number": 128 + "name": "get_queryset", + "docstring": "Return the list of items for this view.\n\nThe return value must be an iterable and may be an instance of\n`QuerySet` in which case `QuerySet` specific behavior will be enabled.", + "code": "def get_queryset(self):\n \"\"\"\n Return the list of items for this view.\n The return value must be an iterable and may be an instance of\n `QuerySet` in which case `QuerySet` specific behavior will be enabled.\n \"\"\"\n if self.queryset is not None:\n queryset = self.queryset\n if isinstance(queryset, QuerySet):\n queryset = queryset.all()\n elif self.model is not None:\n queryset = self.model._default_manager.all()\n else:\n raise ImproperlyConfigured(\n \"%(cls)s is missing a QuerySet. Define \"\n \"%(cls)s.model, %(cls)s.queryset, or override \"\n \"%(cls)s.get_queryset().\" % {\n 'cls': self.__class__.__name__\n }\n )\n ordering = self.get_ordering()\n if ordering:\n if isinstance(ordering, str):\n ordering = (ordering,)\n queryset = queryset.order_by(*ordering)\n return queryset\n", + "kwargs": "self", + "line_number": 21 } }, { @@ -5449,16 +5449,16 @@ "pk": null, "fields": { "klass": [ - "View", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "setup", - "docstring": "Initialize attributes shared by all view methods.", - "code": "def setup(self, request, *args, **kwargs):\n \"\"\"Initialize attributes shared by all view methods.\"\"\"\n if hasattr(self, 'get') and not hasattr(self, 'head'):\n self.head = self.get\n self.request = request\n self.args = args\n self.kwargs = kwargs\n", - "kwargs": "self, request, *args, **kwargs", - "line_number": 85 + "name": "paginate_queryset", + "docstring": "Paginate the queryset, if needed.", + "code": "def paginate_queryset(self, queryset, page_size):\n \"\"\"Paginate the queryset, if needed.\"\"\"\n paginator = self.get_paginator(\n queryset, page_size, orphans=self.get_paginate_orphans(),\n allow_empty_first_page=self.get_allow_empty())\n page_kwarg = self.page_kwarg\n page = self.kwargs.get(page_kwarg) or self.request.GET.get(page_kwarg) or 1\n try:\n page_number = int(page)\n except ValueError:\n if page == 'last':\n page_number = paginator.num_pages\n else:\n raise Http404(_('Page is not “last”, nor can it be converted to an int.'))\n try:\n page = paginator.page(page_number)\n return (paginator, page, page.object_list, page.has_other_pages())\n except InvalidPage as e:\n raise Http404(_('Invalid page (%(page_number)s): %(message)s') % {\n 'page_number': page_number,\n 'message': str(e)\n })\n", + "kwargs": "self, queryset, page_size", + "line_number": 54 } }, { @@ -5466,16 +5466,16 @@ "pk": null, "fields": { "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "4.0" ], - "name": "test_func", - "docstring": "", - "code": "def test_func(self):\n raise NotImplementedError(\n '{} is missing the implementation of the test_func() method.'.format(self.__class__.__name__)\n )\n", + "name": "get_template_names", + "docstring": "Return a list of template names to be used for the request. Must return\na list. May not be called if render_to_response is overridden.", + "code": "def get_template_names(self):\n \"\"\"\n Return a list of template names to be used for the request. Must return\n a list. May not be called if render_to_response is overridden.\n \"\"\"\n try:\n names = super().get_template_names()\n except ImproperlyConfigured:\n # If template_name isn't specified, it's not a problem --\n # we just start with an empty list.\n names = []\n # If the list is a queryset, we'll invent a template name based on the\n # app and model name. This name gets put at the end of the template\n # name list so that user-supplied names override the automatically-\n # generated ones.\n if hasattr(self.object_list, 'model'):\n opts = self.object_list.model._meta\n names.append(\"%s/%s%s.html\" % (opts.app_label, opts.model_name, self.template_name_suffix))\n elif not names:\n raise ImproperlyConfigured(\n \"%(cls)s requires either a 'template_name' attribute \"\n \"or a get_queryset() method that returns a QuerySet.\" % {\n 'cls': self.__class__.__name__,\n }\n )\n return names\n", "kwargs": "self", - "line_number": 113 + "line_number": 165 } }, { @@ -5483,14 +5483,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], "child": [ - "ListView", - "django.views.generic.list", + "LoginRequiredMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], @@ -5502,14 +5502,14 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], "child": [ - "TemplateView", - "django.views.generic.base", + "PermissionRequiredMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], @@ -5521,14 +5521,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "AccessMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "UserPassesTestMixin", + "django.contrib.auth.mixins", "Django", "4.0" ], @@ -5540,14 +5540,14 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "4.0" ], "child": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "4.0" ], @@ -5559,18 +5559,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "4.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "LoginView", + "django.contrib.auth.views", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -5578,14 +5578,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "SuccessURLAllowedHostsMixin", + "django.contrib.auth.views", "Django", "4.0" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "4.0" ], @@ -5597,18 +5597,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "4.0" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "LogoutView", + "django.contrib.auth.views", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -5616,14 +5616,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "4.0" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "4.0" ], @@ -5635,18 +5635,18 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "TemplateView", + "django.views.generic.base", "Django", "4.0" ], "child": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "PasswordChangeDoneView", + "django.contrib.auth.views", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -5654,14 +5654,14 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "4.0" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "4.0" ], @@ -5673,18 +5673,18 @@ "pk": null, "fields": { "parent": [ - "YearMixin", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "4.0" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "PasswordChangeView", + "django.contrib.auth.views", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -5692,14 +5692,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "4.0" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "4.0" ], @@ -5711,18 +5711,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "TemplateView", + "django.views.generic.base", "Django", "4.0" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "PasswordResetCompleteView", + "django.contrib.auth.views", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -5730,14 +5730,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "4.0" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "4.0" ], @@ -5749,18 +5749,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "FormView", + "django.views.generic.edit", "Django", "4.0" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "PasswordResetConfirmView", + "django.contrib.auth.views", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -5768,14 +5768,14 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "4.0" ], "child": [ - "WeekArchiveView", - "django.views.generic.dates", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "4.0" ], @@ -5787,18 +5787,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "TemplateView", + "django.views.generic.base", "Django", "4.0" ], "child": [ - "YearArchiveView", - "django.views.generic.dates", + "PasswordResetDoneView", + "django.contrib.auth.views", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -5806,14 +5806,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "PasswordContextMixin", + "django.contrib.auth.views", "Django", "4.0" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "4.0" ], @@ -5825,18 +5825,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "FormView", + "django.views.generic.edit", "Django", "4.0" ], "child": [ - "DetailView", - "django.views.generic.detail", + "PasswordResetView", + "django.contrib.auth.views", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -5844,14 +5844,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", + "View", "django.views.generic.base", "Django", "4.0" ], "child": [ - "SingleObjectMixin", - "django.views.generic.detail", + "RedirectView", + "django.views.generic.base", "Django", "4.0" ], @@ -5869,8 +5869,8 @@ "4.0" ], "child": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "TemplateView", + "django.views.generic.base", "Django", "4.0" ], @@ -5882,18 +5882,18 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "ContextMixin", + "django.views.generic.base", "Django", "4.0" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -5901,18 +5901,18 @@ "pk": null, "fields": { "parent": [ - "DeletionMixin", - "django.views.generic.edit", + "View", + "django.views.generic.base", "Django", "4.0" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "TemplateView", + "django.views.generic.base", "Django", "4.0" ], - "order": 0 + "order": 2 } }, { @@ -5920,14 +5920,14 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "4.0" ], "child": [ - "BaseFormView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "4.0" ], @@ -5939,18 +5939,18 @@ "pk": null, "fields": { "parent": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "BaseUpdateView", - "django.views.generic.edit", + "ArchiveIndexView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -5958,14 +5958,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "BaseDateListView", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "CreateView", - "django.views.generic.edit", + "BaseArchiveIndexView", + "django.views.generic.dates", "Django", "4.0" ], @@ -5977,14 +5977,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "YearMixin", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "DeleteView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "4.0" ], @@ -5996,18 +5996,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "MonthMixin", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "FormMixin", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -6015,18 +6015,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "DayMixin", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "FormView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 2 } }, { @@ -6034,18 +6034,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "DateMixin", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 3 } }, { @@ -6053,18 +6053,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseDetailView", + "django.views.generic.detail", "Django", "4.0" ], "child": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseDateDetailView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 4 } }, { @@ -6072,14 +6072,14 @@ "pk": null, "fields": { "parent": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "BaseDateListView", + "django.views.generic.dates", "Django", "4.0" ], @@ -6091,18 +6091,18 @@ "pk": null, "fields": { "parent": [ - "MultipleObjectMixin", - "django.views.generic.list", + "DateMixin", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "BaseListView", - "django.views.generic.list", + "BaseDateListView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -6116,12 +6116,12 @@ "4.0" ], "child": [ - "RedirectView", - "django.views.generic.base", + "BaseDateListView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 2 } }, { @@ -6129,14 +6129,14 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "YearMixin", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "MultipleObjectMixin", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], @@ -6148,18 +6148,18 @@ "pk": null, "fields": { "parent": [ - "TemplateResponseMixin", - "django.views.generic.base", + "MonthMixin", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -6167,18 +6167,18 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "DayMixin", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 2 } }, { @@ -6186,18 +6186,18 @@ "pk": null, "fields": { "parent": [ - "SuccessURLAllowedHostsMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 3 } }, { @@ -6205,14 +6205,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "4.0" ], @@ -6224,18 +6224,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "MonthMixin", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -6243,18 +6243,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDateListView", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 2 } }, { @@ -6262,14 +6262,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "BaseDayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], @@ -6281,14 +6281,14 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "YearMixin", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "4.0" ], @@ -6300,18 +6300,18 @@ "pk": null, "fields": { "parent": [ - "PasswordContextMixin", - "django.contrib.auth.views", + "WeekMixin", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -6319,18 +6319,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseDateListView", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 2 } }, { @@ -6338,14 +6338,14 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "YearMixin", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "4.0" ], @@ -6357,18 +6357,18 @@ "pk": null, "fields": { "parent": [ - "AccessMixin", - "django.contrib.auth.mixins", + "BaseDateListView", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 0 + "order": 1 } }, { @@ -6376,18 +6376,18 @@ "pk": null, "fields": { "parent": [ - "BaseUpdateView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "4.0" ], "child": [ - "UpdateView", - "django.views.generic.edit", + "DateDetailView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6395,13 +6395,13 @@ "pk": null, "fields": { "parent": [ - "BaseWeekArchiveView", + "BaseDateDetailView", "django.views.generic.dates", "Django", "4.0" ], "child": [ - "WeekArchiveView", + "DateDetailView", "django.views.generic.dates", "Django", "4.0" @@ -6414,18 +6414,18 @@ "pk": null, "fields": { "parent": [ - "BaseFormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "4.0" ], "child": [ - "FormView", - "django.views.generic.edit", + "DayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6433,13 +6433,13 @@ "pk": null, "fields": { "parent": [ - "BaseYearArchiveView", + "BaseDayArchiveView", "django.views.generic.dates", "Django", "4.0" ], "child": [ - "YearArchiveView", + "DayArchiveView", "django.views.generic.dates", "Django", "4.0" @@ -6452,18 +6452,18 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "4.0" ], "child": [ - "LoginView", - "django.contrib.auth.views", + "MonthArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6471,14 +6471,14 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseMonthArchiveView", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "BaseDetailView", - "django.views.generic.detail", + "MonthArchiveView", + "django.views.generic.dates", "Django", "4.0" ], @@ -6490,18 +6490,18 @@ "pk": null, "fields": { "parent": [ - "SingleObjectMixin", - "django.views.generic.detail", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "4.0" ], "child": [ - "ModelFormMixin", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6509,14 +6509,14 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "BaseTodayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "DetailView", - "django.views.generic.detail", + "TodayArchiveView", + "django.views.generic.dates", "Django", "4.0" ], @@ -6528,18 +6528,18 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "4.0" ], "child": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6547,14 +6547,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "BaseWeekArchiveView", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "LogoutView", - "django.contrib.auth.views", + "WeekArchiveView", + "django.views.generic.dates", "Django", "4.0" ], @@ -6566,18 +6566,18 @@ "pk": null, "fields": { "parent": [ - "ContextMixin", - "django.views.generic.base", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "4.0" ], "child": [ - "TemplateView", - "django.views.generic.base", + "YearArchiveView", + "django.views.generic.dates", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6585,14 +6585,14 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "4.0" ], "child": [ - "BaseCreateView", - "django.views.generic.edit", + "YearArchiveView", + "django.views.generic.dates", "Django", "4.0" ], @@ -6604,18 +6604,18 @@ "pk": null, "fields": { "parent": [ - "BaseArchiveIndexView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "4.0" ], "child": [ - "ArchiveIndexView", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6623,14 +6623,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", + "View", "django.views.generic.base", "Django", "4.0" ], "child": [ - "PasswordResetDoneView", - "django.contrib.auth.views", + "BaseDetailView", + "django.views.generic.detail", "Django", "4.0" ], @@ -6642,18 +6642,18 @@ "pk": null, "fields": { "parent": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "4.0" ], "child": [ - "BaseDeleteView", - "django.views.generic.edit", + "DetailView", + "django.views.generic.detail", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6661,14 +6661,14 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "BaseDetailView", + "django.views.generic.detail", "Django", "4.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "DetailView", + "django.views.generic.detail", "Django", "4.0" ], @@ -6680,18 +6680,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "4.0" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6699,18 +6699,18 @@ "pk": null, "fields": { "parent": [ - "View", + "TemplateResponseMixin", "django.views.generic.base", "Django", "4.0" ], "child": [ - "BaseListView", - "django.views.generic.list", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6718,18 +6718,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "4.0" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "BaseCreateView", + "django.views.generic.edit", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6743,7 +6743,7 @@ "4.0" ], "child": [ - "BaseFormView", + "BaseCreateView", "django.views.generic.edit", "Django", "4.0" @@ -6756,18 +6756,18 @@ "pk": null, "fields": { "parent": [ - "MonthMixin", - "django.views.generic.dates", + "DeletionMixin", + "django.views.generic.edit", "Django", "4.0" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "BaseDeleteView", + "django.views.generic.edit", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6775,14 +6775,14 @@ "pk": null, "fields": { "parent": [ - "TemplateView", - "django.views.generic.base", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], "child": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", + "BaseDeleteView", + "django.views.generic.edit", "Django", "4.0" ], @@ -6794,18 +6794,18 @@ "pk": null, "fields": { "parent": [ - "ProcessFormView", - "django.views.generic.edit", + "BaseDetailView", + "django.views.generic.detail", "Django", "4.0" ], "child": [ - "BaseUpdateView", + "BaseDeleteView", "django.views.generic.edit", "Django", "4.0" ], - "order": 1 + "order": 2 } }, { @@ -6813,18 +6813,18 @@ "pk": null, "fields": { "parent": [ - "WeekMixin", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6832,14 +6832,14 @@ "pk": null, "fields": { "parent": [ - "BaseListView", - "django.views.generic.list", + "ProcessFormView", + "django.views.generic.edit", "Django", "4.0" ], "child": [ - "ListView", - "django.views.generic.list", + "BaseFormView", + "django.views.generic.edit", "Django", "4.0" ], @@ -6851,18 +6851,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "ModelFormMixin", + "django.views.generic.edit", "Django", "4.0" ], "child": [ - "BaseYearArchiveView", - "django.views.generic.dates", + "BaseUpdateView", + "django.views.generic.edit", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6870,13 +6870,13 @@ "pk": null, "fields": { "parent": [ - "BaseCreateView", + "ProcessFormView", "django.views.generic.edit", "Django", "4.0" ], "child": [ - "CreateView", + "BaseUpdateView", "django.views.generic.edit", "Django", "4.0" @@ -6889,18 +6889,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateDetailView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "4.0" ], "child": [ - "DateDetailView", - "django.views.generic.dates", + "CreateView", + "django.views.generic.edit", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6908,14 +6908,14 @@ "pk": null, "fields": { "parent": [ - "FormView", + "BaseCreateView", "django.views.generic.edit", "Django", "4.0" ], "child": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", + "CreateView", + "django.views.generic.edit", "Django", "4.0" ], @@ -6927,18 +6927,18 @@ "pk": null, "fields": { "parent": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "4.0" ], "child": [ - "DayArchiveView", - "django.views.generic.dates", + "DeleteView", + "django.views.generic.edit", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6965,18 +6965,18 @@ "pk": null, "fields": { "parent": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "4.0" ], "child": [ - "MonthArchiveView", - "django.views.generic.dates", + "FormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -6984,18 +6984,18 @@ "pk": null, "fields": { "parent": [ - "FormView", - "django.views.generic.edit", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "4.0" ], "child": [ - "PasswordChangeView", - "django.contrib.auth.views", + "FormView", + "django.views.generic.edit", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -7003,14 +7003,14 @@ "pk": null, "fields": { "parent": [ - "BaseTodayArchiveView", - "django.views.generic.dates", + "BaseFormView", + "django.views.generic.edit", "Django", "4.0" ], "child": [ - "TodayArchiveView", - "django.views.generic.dates", + "FormView", + "django.views.generic.edit", "Django", "4.0" ], @@ -7022,18 +7022,18 @@ "pk": null, "fields": { "parent": [ - "FormView", + "FormMixin", "django.views.generic.edit", "Django", "4.0" ], "child": [ - "PasswordResetView", - "django.contrib.auth.views", + "ModelFormMixin", + "django.views.generic.edit", "Django", "4.0" ], - "order": 1 + "order": 0 } }, { @@ -7041,18 +7041,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", + "SingleObjectMixin", "django.views.generic.detail", "Django", "4.0" ], "child": [ - "BaseDeleteView", + "ModelFormMixin", "django.views.generic.edit", "Django", "4.0" ], - "order": 2 + "order": 1 } }, { @@ -7060,18 +7060,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "4.0" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ProcessFormView", + "django.views.generic.edit", "Django", "4.0" ], - "order": 2 + "order": 0 } }, { @@ -7079,18 +7079,18 @@ "pk": null, "fields": { "parent": [ - "DayMixin", - "django.views.generic.dates", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "4.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "UpdateView", + "django.views.generic.edit", "Django", "4.0" ], - "order": 2 + "order": 0 } }, { @@ -7098,18 +7098,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "BaseUpdateView", + "django.views.generic.edit", "Django", "4.0" ], "child": [ - "TemplateView", - "django.views.generic.base", + "UpdateView", + "django.views.generic.edit", "Django", "4.0" ], - "order": 2 + "order": 1 } }, { @@ -7117,18 +7117,18 @@ "pk": null, "fields": { "parent": [ - "View", - "django.views.generic.base", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], "child": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "4.0" ], - "order": 2 + "order": 0 } }, { @@ -7136,18 +7136,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "View", + "django.views.generic.base", "Django", "4.0" ], "child": [ - "BaseMonthArchiveView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "4.0" ], - "order": 2 + "order": 1 } }, { @@ -7155,18 +7155,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "4.0" ], "child": [ - "BaseWeekArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "4.0" ], - "order": 2 + "order": 0 } }, { @@ -7174,18 +7174,18 @@ "pk": null, "fields": { "parent": [ - "BaseDateListView", - "django.views.generic.dates", + "BaseListView", + "django.views.generic.list", "Django", "4.0" ], "child": [ - "BaseDayArchiveView", - "django.views.generic.dates", + "ListView", + "django.views.generic.list", "Django", "4.0" ], - "order": 3 + "order": 1 } }, { @@ -7193,18 +7193,18 @@ "pk": null, "fields": { "parent": [ - "DateMixin", - "django.views.generic.dates", + "ContextMixin", + "django.views.generic.base", "Django", "4.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectMixin", + "django.views.generic.list", "Django", "4.0" ], - "order": 3 + "order": 0 } }, { @@ -7212,18 +7212,18 @@ "pk": null, "fields": { "parent": [ - "BaseDetailView", - "django.views.generic.detail", + "TemplateResponseMixin", + "django.views.generic.base", "Django", "4.0" ], "child": [ - "BaseDateDetailView", - "django.views.generic.dates", + "MultipleObjectTemplateResponseMixin", + "django.views.generic.list", "Django", "4.0" ], - "order": 4 + "order": 0 } } ] diff --git a/cbv/management/commands/cbv_dumpversion.py b/cbv/management/commands/cbv_dumpversion.py index 7c076b8f..761be27c 100644 --- a/cbv/management/commands/cbv_dumpversion.py +++ b/cbv/management/commands/cbv_dumpversion.py @@ -1,3 +1,5 @@ +from itertools import chain + from django.core import serializers from django.core.management.base import LabelCommand @@ -8,19 +10,26 @@ class Command(LabelCommand): """Dump the django cbv app data for a specific version.""" def handle_label(self, label, **options): - filtered_models = ( - (models.ProjectVersion, "version_number"), - (models.Module, "project_version__version_number"), - (models.Klass, "module__project_version__version_number"), - (models.KlassAttribute, "klass__module__project_version__version_number"), - (models.Method, "klass__module__project_version__version_number"), - (models.Inheritance, "parent__module__project_version__version_number"), + querysets = ( + # There will be only one ProjectVersion, so no need for ordering. + models.ProjectVersion.objects.filter(version_number=label), + models.Module.objects.filter( + project_version__version_number=label + ).order_by("name"), + models.Klass.objects.filter( + module__project_version__version_number=label + ).order_by("module__name", "name"), + models.KlassAttribute.objects.filter( + klass__module__project_version__version_number=label + ).order_by("klass__module__name", "klass__name", "name"), + models.Method.objects.filter( + klass__module__project_version__version_number=label + ).order_by("klass__module__name", "klass__name", "name"), + models.Inheritance.objects.filter( + parent__module__project_version__version_number=label + ).order_by("child__module__name", "child__name", "order"), ) - objects = [] - for model, version_arg in filtered_models: - filter_kwargs = {version_arg: label} - result = model.objects.filter(**filter_kwargs) - objects = objects + list(result) + objects = list(chain.from_iterable(querysets)) for obj in objects: obj.pk = None dump = serializers.serialize( diff --git a/cbv/tests/test_models.py b/cbv/tests/test_models.py index af9ffd20..6e9280f3 100644 --- a/cbv/tests/test_models.py +++ b/cbv/tests/test_models.py @@ -1,6 +1,6 @@ import pytest -from .factories import InheritanceFactory +from .factories import InheritanceFactory, KlassFactory @pytest.mark.django_db @@ -18,10 +18,11 @@ def test_linear(self) -> None: C.__mro__ would be [C, B, A]. """ - b_child_of_a = InheritanceFactory.create(child__name="b", parent__name="a") - a = b_child_of_a.parent - b = b_child_of_a.child - c = InheritanceFactory.create(parent=b, child__name="c").child + a = KlassFactory.create(name="a") + b = KlassFactory.create(name="b") + c = KlassFactory.create(name="c") + InheritanceFactory.create(parent=a, child=b) + InheritanceFactory.create(parent=b, child=c) mro = c.get_all_ancestors() @@ -40,11 +41,13 @@ def test_diamond(self) -> None: D.__mro__ would be [D, B, C, A]. """ - b_child_of_a = InheritanceFactory.create(child__name="b", parent__name="a") - a = b_child_of_a.parent - b = b_child_of_a.child - c = InheritanceFactory.create(parent=a, child__name="c").child - d = InheritanceFactory.create(parent=b, child__name="d").child + a = KlassFactory.create(name="a") + b = KlassFactory.create(name="b") + c = KlassFactory.create(name="c") + d = KlassFactory.create(name="d") + InheritanceFactory.create(parent=a, child=b) + InheritanceFactory.create(parent=a, child=c) + InheritanceFactory.create(parent=b, child=d) InheritanceFactory.create(parent=c, child=d, order=2) mro = d.get_all_ancestors() diff --git a/mypy-ratchet.json b/mypy-ratchet.json index d9fc2d69..d2a1e29d 100644 --- a/mypy-ratchet.json +++ b/mypy-ratchet.json @@ -5,9 +5,7 @@ "Function is missing a type annotation for one or more arguments [no-untyped-def]": 12 }, "cbv/management/commands/cbv_dumpversion.py": { - "\"Type[object]\" has no attribute \"objects\" [attr-defined]": 1, - "Function is missing a type annotation [no-untyped-def]": 1, - "Need type annotation for \"objects\" (hint: \"objects: List[] = ...\") [var-annotated]": 1 + "Function is missing a type annotation [no-untyped-def]": 1 }, "cbv/management/commands/fetch_docs_urls.py": { "Call to untyped function \"bless_prints\" in typed context [no-untyped-call]": 3,