@No_name451

Как исправить ошибку обновления/удаления данных через generic'и (django)?

Не получается удалить или обновить данные через дефолтные дженерики джанги. Прошу дать конкретный ответ, как можно это решить. Заранее благодарю.
Файлы:

models.py
from django.db import models as md


class City(md.Model):
    name = md.CharField(max_length=150, unique=True, verbose_name='Город')

    def __str__(self):
        return f'{self.name}'

    class Meta:
        verbose_name = 'Город'
        verbose_name_plural = 'Города'
        ordering = ['name']

views.py
from cities.models import City
from cities.forms import NewCity
from django.views.generic import ListView
from django.views.generic.detail import DetailView
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from django.urls.base import reverse_lazy


class IndexView(ListView):
    model = City
    context_object_name = 'cities'
    template_name = 'cities/index.html'


class City(DetailView):
    queryset = City.objects.all()
    context_object_name = 'city'
    template_name = 'cities/city.html'


class CreateCity(CreateView):
    model = City
    form_class = NewCity
    template_name = 'cities/create.html'
    success_url = reverse_lazy('cities:index')


class UpdateCity(UpdateView):
    model = City
    form_class = NewCity
    template_name = 'cities/update.html'
    success_url = reverse_lazy('cities:index')


class DeleteCity(DeleteView):    
    model = City
    template_name = 'cities/delete.html'
    success_url = reverse_lazy('cities:index')

urls.py
from django.urls import path
from cities import views


urlpatterns = [
    path('', views.IndexView.as_view(), name='index'),
    path('city/<int:pk>', views.City.as_view(), name='city'),
    path('create/', views.CreateCity.as_view(), name='create'),
    path('update/<int:pk>', views.UpdateCity.as_view(), name='update'),
    path('delete/<int:pk>', views.DeleteCity.as_view(), name='delete'),
]

При работе c IndexView, City, CreateCity никаких проблем нет (IndexView отображает конкретный список; City - необходимый пункт из спика, CreateCity - создает новую запись, после чего редиректит на основную страницу). При попытке отредактировать или удалить запись появляется одинаковая ошибка.
  • Удаление:

AttributeError at /cities/delete/22
type object 'City' has no attribute '_default_manager'

  • Обновление:

AttributeError at /cities/update/22
type object 'City' has no attribute '_default_manager'
  • Вопрос задан
  • 432 просмотра
Решения вопроса 1
@mikeyuriev
Конфликт имён
from cities.models import City

class City(DetailView):
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы