@albertalexandrov

Как создать кастомную детализированную вьюху в админке?

Предположим, есть модель:

class Person(models.Model):
    first_name = models.CharField(...)
    last_name = models.CharField(...)


Регистрирую ее в админке:

@admin.register(Person):
class PersonAdmin(admin.ModelAdmin):
    pass


Теперь я хочу добавить кастомную детализированную вьюху наподобие вьюхи удаления, изменения. Для это дорабатываю PersonAdmin:

@admin.register(Person):
class PersonAdmin(admin.ModelAdmin):

    def get_urls(self):
        urls = super().get_urls()
        info = self.model._meta.app_label, self.model._meta.model_name
        url = path('<path:object_id>/custom/', self.custom_view, name='%s_%s_custom % info)
        urls.append(url)

        return urls

    def custom_view(self, request, object_id, form_url='', extra_context=None):
        pass


Добавленный урл появляется в списке урлов, однако, когда перехожу по этому урлу, то пишет, что урл /123/custom/ не найден.

Как сделать правильно?
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы