From df67ff94164a5e24fd575257e9f870b9a6e29fbf Mon Sep 17 00:00:00 2001 From: Charlie Denton Date: Wed, 8 Apr 2026 15:12:50 +0100 Subject: [PATCH 1/2] Avoid the addition of two new object attributes These new attributes were added in Python 3.13. https://docs.python.org/3/whatsnew/3.13.html --- cbv/importer/importers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cbv/importer/importers.py b/cbv/importer/importers.py index feb03120..5362714a 100644 --- a/cbv/importer/importers.py +++ b/cbv/importer/importers.py @@ -19,11 +19,13 @@ "__dict__", "__doc__", "__file__", + "__firstlineno__", "__module__", "__name__", "__package__", "__path__", "__spec__", + "__static_attributes__", "__weakref__", ) From 00952c25fbd7bb142ba9cce73099c55bbd139ac2 Mon Sep 17 00:00:00 2001 From: Charlie Denton Date: Wed, 8 Apr 2026 15:23:14 +0100 Subject: [PATCH 2/2] Remove irrelevant object model attributes --- cbv/fixtures/6.0.json | 1467 +++++------------------------------------ 1 file changed, 156 insertions(+), 1311 deletions(-) diff --git a/cbv/fixtures/6.0.json b/cbv/fixtures/6.0.json index a8da08f9..040c1e5d 100644 --- a/cbv/fixtures/6.0.json +++ b/cbv/fixtures/6.0.json @@ -975,36 +975,6 @@ "docs_url": "https://docs.djangoproject.com/en/6.0/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin" } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "10", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "AccessMixin", - "django.contrib.auth.mixins", - "Django", - "6.0" - ], - "name": "__static_attributes__", - "value": "()", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -1065,36 +1035,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "LoginRequiredMixin", - "django.contrib.auth.mixins", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "68", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "PermissionRequiredMixin", - "django.contrib.auth.mixins", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "77", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -1110,36 +1050,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "UserPassesTestMixin", - "django.contrib.auth.mixins", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "113", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "LoginView", - "django.contrib.auth.views", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "65", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -1200,21 +1110,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "LogoutView", - "django.contrib.auth.views", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "125", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -1245,21 +1140,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "PasswordChangeDoneView", - "django.contrib.auth.views", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "368", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -1290,21 +1170,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "PasswordChangeView", - "django.contrib.auth.views", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "346", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -1365,36 +1230,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "PasswordContextMixin", - "django.contrib.auth.views", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "199", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "PasswordContextMixin", - "django.contrib.auth.views", - "Django", - "6.0" - ], - "name": "__static_attributes__", - "value": "()", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -1410,21 +1245,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "PasswordResetCompleteView", - "django.contrib.auth.views", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "335", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -1455,36 +1275,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "247", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "PasswordResetConfirmView", - "django.contrib.auth.views", - "Django", - "6.0" - ], - "name": "__static_attributes__", - "value": "('user', 'validlink')", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -1605,21 +1395,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "PasswordResetDoneView", - "django.contrib.auth.views", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "241", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -1650,21 +1425,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "PasswordResetView", - "django.contrib.auth.views", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "210", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -1815,36 +1575,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "RedirectURLMixin", - "django.contrib.auth.views", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "35", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "RedirectURLMixin", - "django.contrib.auth.views", - "Django", - "6.0" - ], - "name": "__static_attributes__", - "value": "()", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -1900,8 +1630,8 @@ "Django", "6.0" ], - "name": "__firstlineno__", - "value": "23", + "name": "extra_context", + "value": "None", "line_number": -1 } }, @@ -1910,13 +1640,13 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", + "RedirectView", "django.views.generic.base", "Django", "6.0" ], - "name": "__static_attributes__", - "value": "()", + "name": "pattern_name", + "value": "None", "line_number": -1 } }, @@ -1925,13 +1655,13 @@ "pk": null, "fields": { "klass": [ - "ContextMixin", + "RedirectView", "django.views.generic.base", "Django", "6.0" ], - "name": "extra_context", - "value": "None", + "name": "permanent", + "value": "False", "line_number": -1 } }, @@ -1945,8 +1675,8 @@ "Django", "6.0" ], - "name": "__firstlineno__", - "value": "233", + "name": "query_string", + "value": "False", "line_number": -1 } }, @@ -1960,8 +1690,8 @@ "Django", "6.0" ], - "name": "__static_attributes__", - "value": "()", + "name": "url", + "value": "None", "line_number": -1 } }, @@ -1970,12 +1700,12 @@ "pk": null, "fields": { "klass": [ - "RedirectView", + "TemplateResponseMixin", "django.views.generic.base", "Django", "6.0" ], - "name": "pattern_name", + "name": "content_type", "value": "None", "line_number": -1 } @@ -1985,97 +1715,7 @@ "pk": null, "fields": { "klass": [ - "RedirectView", - "django.views.generic.base", - "Django", - "6.0" - ], - "name": "permanent", - "value": "False", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "RedirectView", - "django.views.generic.base", - "Django", - "6.0" - ], - "name": "query_string", - "value": "False", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "RedirectView", - "django.views.generic.base", - "Django", - "6.0" - ], - "name": "url", - "value": "None", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "185", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", - "Django", - "6.0" - ], - "name": "__static_attributes__", - "value": "()", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "TemplateResponseMixin", - "django.views.generic.base", - "Django", - "6.0" - ], - "name": "content_type", - "value": "None", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "TemplateResponseMixin", + "TemplateResponseMixin", "django.views.generic.base", "Django", "6.0" @@ -2115,51 +1755,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "TemplateView", - "django.views.generic.base", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "223", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "View", - "django.views.generic.base", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "38", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "View", - "django.views.generic.base", - "Django", - "6.0" - ], - "name": "__static_attributes__", - "value": "('args', 'head', 'kwargs', 'request')", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -2190,21 +1785,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "ArchiveIndexView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "413", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -2220,21 +1800,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "BaseArchiveIndexView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "393", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -2250,51 +1815,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "BaseDateDetailView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "652", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "BaseDateListView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "302", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "BaseDateListView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__static_attributes__", - "value": "('date_list', 'object_list')", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -2325,36 +1845,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "BaseDayArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "583", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "BaseMonthArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "475", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null, @@ -2366,637 +1856,7 @@ "6.0" ], "name": "date_list_period", - "value": "'day'", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "BaseTodayArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "634", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "BaseWeekArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "521", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "419", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "date_list_period", - "value": "'month'", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "BaseYearArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "make_object_list", - "value": "False", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "DateDetailView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "698", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "DateMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "235", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "DateMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__static_attributes__", - "value": "()", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "DateMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "allow_future", - "value": "False", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "DateMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "date_field", - "value": "None", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "DateMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "uses_datetime_field", - "value": "", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "DayArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "628", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "DayArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "template_name_suffix", - "value": "'_archive_day'", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "DayMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "124", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "DayMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__static_attributes__", - "value": "()", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "DayMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "day", - "value": "None", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "DayMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "day_format", - "value": "'%d'", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "MonthArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "515", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "MonthArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "template_name_suffix", - "value": "'_archive_month'", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "MonthMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "71", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "MonthMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__static_attributes__", - "value": "()", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "MonthMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "month", - "value": "None", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "MonthMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "month_format", - "value": "'%b'", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "TodayArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "646", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "TodayArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "template_name_suffix", - "value": "'_archive_day'", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "WeekArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "577", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "WeekArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "template_name_suffix", - "value": "'_archive_week'", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "WeekMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "171", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "WeekMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__static_attributes__", - "value": "()", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "WeekMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "week", - "value": "None", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "WeekMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "week_format", - "value": "'%U'", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "YearArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "469", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "YearArchiveView", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "template_name_suffix", - "value": "'_archive_year'", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "YearMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "21", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "YearMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "__static_attributes__", - "value": "()", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "YearMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "year", - "value": "None", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "YearMixin", - "django.views.generic.dates", - "Django", - "6.0" - ], - "name": "year_format", - "value": "'%Y'", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "BaseDetailView", - "django.views.generic.detail", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "104", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "BaseDetailView", - "django.views.generic.detail", - "Django", - "6.0" - ], - "name": "__static_attributes__", - "value": "('object',)", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "DetailView", - "django.views.generic.detail", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "184", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "8", - "line_number": -1 - } -}, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", - "Django", - "6.0" - ], - "name": "context_object_name", - "value": "None", + "value": "'day'", "line_number": -1 } }, @@ -3005,13 +1865,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "6.0" ], - "name": "model", - "value": "None", + "name": "date_list_period", + "value": "'month'", "line_number": -1 } }, @@ -3020,13 +1880,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "BaseYearArchiveView", + "django.views.generic.dates", "Django", "6.0" ], - "name": "pk_url_kwarg", - "value": "'pk'", + "name": "make_object_list", + "value": "False", "line_number": -1 } }, @@ -3035,12 +1895,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DateMixin", + "django.views.generic.dates", "Django", "6.0" ], - "name": "query_pk_and_slug", + "name": "allow_future", "value": "False", "line_number": -1 } @@ -3050,12 +1910,12 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DateMixin", + "django.views.generic.dates", "Django", "6.0" ], - "name": "queryset", + "name": "date_field", "value": "None", "line_number": -1 } @@ -3065,13 +1925,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DateMixin", + "django.views.generic.dates", "Django", "6.0" ], - "name": "slug_field", - "value": "'slug'", + "name": "uses_datetime_field", + "value": "", "line_number": -1 } }, @@ -3080,13 +1940,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectMixin", - "django.views.generic.detail", + "DayArchiveView", + "django.views.generic.dates", "Django", "6.0" ], - "name": "slug_url_kwarg", - "value": "'slug'", + "name": "template_name_suffix", + "value": "'_archive_day'", "line_number": -1 } }, @@ -3095,13 +1955,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "117", + "name": "day", + "value": "None", "line_number": -1 } }, @@ -3110,13 +1970,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "DayMixin", + "django.views.generic.dates", "Django", "6.0" ], - "name": "template_name_field", - "value": "None", + "name": "day_format", + "value": "'%d'", "line_number": -1 } }, @@ -3125,13 +1985,13 @@ "pk": null, "fields": { "klass": [ - "SingleObjectTemplateResponseMixin", - "django.views.generic.detail", + "MonthArchiveView", + "django.views.generic.dates", "Django", "6.0" ], "name": "template_name_suffix", - "value": "'_detail'", + "value": "'_archive_month'", "line_number": -1 } }, @@ -3140,13 +2000,13 @@ "pk": null, "fields": { "klass": [ - "BaseCreateView", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "169", + "name": "month", + "value": "None", "line_number": -1 } }, @@ -3155,13 +2015,13 @@ "pk": null, "fields": { "klass": [ - "BaseDeleteView", - "django.views.generic.edit", + "MonthMixin", + "django.views.generic.dates", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "241", + "name": "month_format", + "value": "'%b'", "line_number": -1 } }, @@ -3170,14 +2030,14 @@ "pk": null, "fields": { "klass": [ - "BaseDeleteView", - "django.views.generic.edit", + "TodayArchiveView", + "django.views.generic.dates", "Django", "6.0" ], - "name": "form_class", - "value": "", - "line_number": 432 + "name": "template_name_suffix", + "value": "'_archive_day'", + "line_number": -1 } }, { @@ -3185,13 +2045,13 @@ "pk": null, "fields": { "klass": [ - "BaseFormView", - "django.views.generic.edit", + "WeekArchiveView", + "django.views.generic.dates", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "161", + "name": "template_name_suffix", + "value": "'_archive_week'", "line_number": -1 } }, @@ -3200,13 +2060,13 @@ "pk": null, "fields": { "klass": [ - "BaseUpdateView", - "django.views.generic.edit", + "WeekMixin", + "django.views.generic.dates", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "193", + "name": "week", + "value": "None", "line_number": -1 } }, @@ -3215,13 +2075,13 @@ "pk": null, "fields": { "klass": [ - "CreateView", - "django.views.generic.edit", + "WeekMixin", + "django.views.generic.dates", "Django", "6.0" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "week_format", + "value": "'%U'", "line_number": -1 } }, @@ -3230,13 +2090,13 @@ "pk": null, "fields": { "klass": [ - "DeleteView", - "django.views.generic.edit", + "YearArchiveView", + "django.views.generic.dates", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "268", + "name": "template_name_suffix", + "value": "'_archive_year'", "line_number": -1 } }, @@ -3245,13 +2105,13 @@ "pk": null, "fields": { "klass": [ - "DeleteView", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "6.0" ], - "name": "template_name_suffix", - "value": "'_confirm_delete'", + "name": "year", + "value": "None", "line_number": -1 } }, @@ -3260,13 +2120,13 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "YearMixin", + "django.views.generic.dates", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "215", + "name": "year_format", + "value": "'%Y'", "line_number": -1 } }, @@ -3275,13 +2135,13 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "6.0" ], - "name": "__static_attributes__", - "value": "('object',)", + "name": "context_object_name", + "value": "None", "line_number": -1 } }, @@ -3290,12 +2150,12 @@ "pk": null, "fields": { "klass": [ - "DeletionMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "6.0" ], - "name": "success_url", + "name": "model", "value": "None", "line_number": -1 } @@ -3305,13 +2165,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "13", + "name": "pk_url_kwarg", + "value": "'pk'", "line_number": -1 } }, @@ -3320,13 +2180,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "6.0" ], - "name": "form_class", - "value": "None", + "name": "query_pk_and_slug", + "value": "False", "line_number": -1 } }, @@ -3335,13 +2195,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "6.0" ], - "name": "initial", - "value": "{}", + "name": "queryset", + "value": "None", "line_number": -1 } }, @@ -3350,13 +2210,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "6.0" ], - "name": "prefix", - "value": "None", + "name": "slug_field", + "value": "'slug'", "line_number": -1 } }, @@ -3365,13 +2225,13 @@ "pk": null, "fields": { "klass": [ - "FormMixin", - "django.views.generic.edit", + "SingleObjectMixin", + "django.views.generic.detail", "Django", "6.0" ], - "name": "success_url", - "value": "None", + "name": "slug_url_kwarg", + "value": "'slug'", "line_number": -1 } }, @@ -3380,13 +2240,13 @@ "pk": null, "fields": { "klass": [ - "FormView", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "165", + "name": "template_name_field", + "value": "None", "line_number": -1 } }, @@ -3395,13 +2255,13 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", - "django.views.generic.edit", + "SingleObjectTemplateResponseMixin", + "django.views.generic.detail", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "76", + "name": "template_name_suffix", + "value": "'_detail'", "line_number": -1 } }, @@ -3410,14 +2270,14 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", + "BaseDeleteView", "django.views.generic.edit", "Django", "6.0" ], - "name": "__static_attributes__", - "value": "('object',)", - "line_number": -1 + "name": "form_class", + "value": "", + "line_number": 432 } }, { @@ -3425,13 +2285,13 @@ "pk": null, "fields": { "klass": [ - "ModelFormMixin", + "CreateView", "django.views.generic.edit", "Django", "6.0" ], - "name": "fields", - "value": "None", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -3440,13 +2300,13 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", + "DeleteView", "django.views.generic.edit", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "137", + "name": "template_name_suffix", + "value": "'_confirm_delete'", "line_number": -1 } }, @@ -3455,13 +2315,13 @@ "pk": null, "fields": { "klass": [ - "ProcessFormView", + "DeletionMixin", "django.views.generic.edit", "Django", "6.0" ], - "name": "__static_attributes__", - "value": "()", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -3470,13 +2330,13 @@ "pk": null, "fields": { "klass": [ - "UpdateView", + "FormMixin", "django.views.generic.edit", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "209", + "name": "form_class", + "value": "None", "line_number": -1 } }, @@ -3485,13 +2345,13 @@ "pk": null, "fields": { "klass": [ - "UpdateView", + "FormMixin", "django.views.generic.edit", "Django", "6.0" ], - "name": "template_name_suffix", - "value": "'_form'", + "name": "initial", + "value": "{}", "line_number": -1 } }, @@ -3500,13 +2360,13 @@ "pk": null, "fields": { "klass": [ - "BaseListView", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "150", + "name": "prefix", + "value": "None", "line_number": -1 } }, @@ -3515,13 +2375,13 @@ "pk": null, "fields": { "klass": [ - "BaseListView", - "django.views.generic.list", + "FormMixin", + "django.views.generic.edit", "Django", "6.0" ], - "name": "__static_attributes__", - "value": "('object_list',)", + "name": "success_url", + "value": "None", "line_number": -1 } }, @@ -3530,13 +2390,13 @@ "pk": null, "fields": { "klass": [ - "ListView", - "django.views.generic.list", + "ModelFormMixin", + "django.views.generic.edit", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "220", + "name": "fields", + "value": "None", "line_number": -1 } }, @@ -3545,13 +2405,13 @@ "pk": null, "fields": { "klass": [ - "MultipleObjectMixin", - "django.views.generic.list", + "UpdateView", + "django.views.generic.edit", "Django", "6.0" ], - "name": "__firstlineno__", - "value": "9", + "name": "template_name_suffix", + "value": "'_form'", "line_number": -1 } }, @@ -3690,21 +2550,6 @@ "line_number": -1 } }, -{ - "model": "cbv.klassattribute", - "pk": null, - "fields": { - "klass": [ - "MultipleObjectTemplateResponseMixin", - "django.views.generic.list", - "Django", - "6.0" - ], - "name": "__firstlineno__", - "value": "182", - "line_number": -1 - } -}, { "model": "cbv.klassattribute", "pk": null,