From eceeaaa55b2bcfd105a231678d8ba46ffd90db64 Mon Sep 17 00:00:00 2001 From: erjemin Date: Sat, 20 Jun 2026 19:47:24 +0300 Subject: [PATCH] =?UTF-8?q?add:=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0?= =?UTF-8?q?=D1=82=D0=BE=D1=80=20=D1=84=D0=BE=D1=80=D0=BC=20=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=B8=D0=B7=D0=B1=D0=B5=D0=B6=D0=B0=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B4=D1=83=D0=B1=D0=BB=D0=B5=D0=B9=20(3)=20=D0=BE=D1=82?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=B0?= =?UTF-8?q?=D1=8F=20=D1=81=D1=81=D1=8B=D0=BB=D0=BA=D0=B0=20=D0=B2=20=D0=B0?= =?UTF-8?q?=D0=B4=D0=BC=D0=B8=D0=BD=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lpon_site/frontend/utils.py | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/lpon_site/frontend/utils.py b/lpon_site/frontend/utils.py index 6cdb014..e82233b 100644 --- a/lpon_site/frontend/utils.py +++ b/lpon_site/frontend/utils.py @@ -298,7 +298,6 @@ def validate_entity_for_admin_form(form_instance, cleaned_data, ) return cleaned_data """ - from django.urls import reverse from django.utils.html import mark_safe # Получаем класс модели из метаинформации формы @@ -335,15 +334,13 @@ def validate_entity_for_admin_form(form_instance, cleaned_data, # ОБРАБОТКА ТОЧНЫХ ДУБЛИКАТОВ # Строим ссылки на найденные дубликаты для быстрого перехода в админке dup_links = [] - for dup in duplicates_queryset: - # Получаем admin URL автоматически через Django meta - model_name = model_class._meta.model_name - app_label = model_class._meta.app_label - admin_url = reverse(f'admin:{app_label}_{model_name}_change', args=[dup.pk]) - # Делаем ссылку относительной (убираем начальный слэш для универсальности) - rel_url = admin_url.lstrip('/') - # Получаем значение основного поля из дубликата + for dup in duplicates_queryset: + # Относительная ссылка зависит от режима админки: + # При создании: /admin/app/model/add/ → ../456/change/ + # При редактировании: /admin/app/model/123/change/ → ../..456/change/ + rel_url = f"../{dup.pk}/change/" if form_instance.instance.pk is None else f"../../{dup.pk}/change/" + # Получаем значение основного поля из дубликата для вывода в ссылке dup_value = getattr(dup, main_field_name, '?') dup_links.append(f"#{dup.pk} '{dup_value}'")