Пользовательское представление с параметром email в django изменяет url и показывает код состояния http 301,302

модель myapp:

class GroupMailIds(models.Model):
    local_part = models.CharField(
        max_length=100,
        verbose_name='local part',
        help_text=hlocal_part
    )
    address = models.EmailField(unique=True)
    domain = models.ForeignKey(Domain,on_delete=models.CASCADE,
                               related_name='domains')
    def __str__(self):
        return self.address

В myapp urls.py:

from . import views
from django.urls import path, include
from django.http import *

urlpatterns = [
    path('', views.index, name='index'),
    path('groupmailids/<str:email>/details',
         views.get_groupmailid_details, name='get_groupmailid_details'),]

myapp views.py:

def get_groupmailid_details(request, email):
    data = {}
    if request.method == 'POST':
        return redirect('home')
    else:
        try:
            groupmailid_obj = GroupMailIds.objects.filter(address=email)[0]
            print(groupmailid_obj, '--------groupmailid_objjjjjjjj')
        except Exception as e:
           groupmailid_obj = None
        if groupmailid_obj:
            data.update(
                {'groupmailid_id':groupmailid_obj.id,
                 'address':groupmailid_obj.address,
            })

        print(data)
        return JsonResponse(data)

Но когда в браузере я использую url: localhost:8000/admin/mailmanager/groupmailids/newgroup@saintmartincanada.com/details id отображает главное меню с сообщением:

Group email id with ID “newgroup@saintmartincanada.com/details” doesn’t exist. Perhaps it was deleted?

Приведенный выше код работал некоторое время очень хорошо, но внезапно перестал работать, в консоли можно увидеть сообщения журнала трассировки, такие как:

"GET /admin/mailmanager/groupmailids/newgroup@saintmartincanada.com/details HTTP/1.1" 301 0
[12/Jan/2022 18:18:22] "GET /admin/mailmanager/groupmailids/newgroup@saintmartincanada.com/details/ HTTP/1.1" 302 0
[12/Jan/2022 18:18:23] "GET /admin/mailmanager/groupmailids/newgroup@saintmartincanada.com/details/change/ HTTP/1.1" 30

Не удается решить эту проблему. Почему он добавляет '/change' к url? и возвращается на страницу администратора в GUI? Он показывает http статус код 301, 302 в логах? Я использую django 3.2, python 3.7. Пожалуйста, подскажите правильный код?

Наконец-то исправил это. В проекте urls.py мне нужно добавить урлы myapp перед добавлением урлов django admin по умолчанию:

urlpatterns = [
    path('', include('django.contrib.auth.urls')),
    path('admin/myapp/',include('myapp.urls')),
    path('admin/', admin.site.urls),
]
Вернуться на верх