Im triyng to register model in django admin, but i get error backend-1 | Couldnt reverse admin:chat_chatroom_changelist
. Im using jazzmin for customize admin panel, and i setting up it for model
JAZZMIN_SETTINGS
{
'name':_('Chat'),
'model': 'chat.ChatRoom',
'url': 'admin:chat_chatroom_changelist',
'permissions': ['auth.view_user'],
},
Model has been register in admin.py
@admin.register(ChatRoom)
class ChatRoomAdmin(admin.ModelAdmin):
fieldsets = (
(None, {'fields': ('first_user', 'second_user')}),
(_('Important dates'), {'fields': ('created_at', 'updated_at')}),
)
list_display = ('id', 'first_user', 'second_user', 'created_at', 'updated_at')
readonly_fields = ('created_at', 'updated_at')
list_display_links = ('id', 'first_user', 'second_user')
show_full_result_count = False
def get_queryset(self, request):
return super().get_queryset(request).select_related('first_user', 'second_user').order_by('-created_at')
def get_history_queryset(self, request, history_manager, pk_name: str, object_id):
qs = super().get_history_queryset(request, history_manager, pk_name, object_id)
return qs.prefetch_related('history_user')
model
class ChatRoom(TimestampMixin, models.Model):
first_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='first_user')
second_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='second_user')
def __str__(self):
return ' / '.join([str(self.first_user), str(self.second_user)])
class Meta:
db_table = 'chatrooms'
app_label = 'chat'
Full traceback
backend-1 | 15-02-2025 20:08:32 | gunicorn.error | DEBUG | 25 workers
backend-1 | [2025-02-15 20:08:32 +0000] [1] [DEBUG] 25 workers
backend-1 | Couldnt reverse admin:chat_chatroom_changelist
backend-1 | Couldnt reverse admin:chat_message_changelist
Additional traceback
Cell In[1], line 2
1 from django.urls import reverse
----> 2 print(reverse("admin:chat_chatroom_changelist"))
3 print(reverse("admin:chat_message_changelist"))
File /usr/local/lib/python3.12/site-packages/django/urls/base.py:88, in reverse(viewname, urlconf, args, kwargs, current_app)
83 if ns_pattern:
84 resolver = get_ns_resolver(
85 ns_pattern, resolver, tuple(ns_converters.items())
86 )
---> 88 return resolver._reverse_with_prefix(view, prefix, *args, **kwargs)
File /usr/local/lib/python3.12/site-packages/django/urls/resolvers.py:831, in URLResolver._reverse_with_prefix(self, lookup_view, _prefix, *args, **kwargs)
826 else:
827 msg = (
828 "Reverse for '%(view)s' not found. '%(view)s' is not "
829 "a valid view function or pattern name." % {"view": lookup_view_s}
830 )
--> 831 raise NoReverseMatch(msg)
NoReverseMatch: Reverse for 'chat_chatroom_changelist' not found. 'chat_chatroom_changelist' is not a valid view function or pattern name.
Project structure
_|apps
__|chat
___|admin
____|admin.py
___|models
____|chat.py
___|url.py
___|...
__|...
__|asgi.py
__|wsgi.py
_|settings
__|main.py
__|base.py
__|jazzmin.py
_|...
Im triyng to register model in django admin, but i get error backend-1 | Couldnt reverse admin:chat_chatroom_changelist
. Im using jazzmin for customize admin panel, and i setting up it for model
JAZZMIN_SETTINGS
{
'name':_('Chat'),
'model': 'chat.ChatRoom',
'url': 'admin:chat_chatroom_changelist',
'permissions': ['auth.view_user'],
},
Model has been register in admin.py
@admin.register(ChatRoom)
class ChatRoomAdmin(admin.ModelAdmin):
fieldsets = (
(None, {'fields': ('first_user', 'second_user')}),
(_('Important dates'), {'fields': ('created_at', 'updated_at')}),
)
list_display = ('id', 'first_user', 'second_user', 'created_at', 'updated_at')
readonly_fields = ('created_at', 'updated_at')
list_display_links = ('id', 'first_user', 'second_user')
show_full_result_count = False
def get_queryset(self, request):
return super().get_queryset(request).select_related('first_user', 'second_user').order_by('-created_at')
def get_history_queryset(self, request, history_manager, pk_name: str, object_id):
qs = super().get_history_queryset(request, history_manager, pk_name, object_id)
return qs.prefetch_related('history_user')
model
class ChatRoom(TimestampMixin, models.Model):
first_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='first_user')
second_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='second_user')
def __str__(self):
return ' / '.join([str(self.first_user), str(self.second_user)])
class Meta:
db_table = 'chatrooms'
app_label = 'chat'
Full traceback
backend-1 | 15-02-2025 20:08:32 | gunicorn.error | DEBUG | 25 workers
backend-1 | [2025-02-15 20:08:32 +0000] [1] [DEBUG] 25 workers
backend-1 | Couldnt reverse admin:chat_chatroom_changelist
backend-1 | Couldnt reverse admin:chat_message_changelist
Additional traceback
Cell In[1], line 2
1 from django.urls import reverse
----> 2 print(reverse("admin:chat_chatroom_changelist"))
3 print(reverse("admin:chat_message_changelist"))
File /usr/local/lib/python3.12/site-packages/django/urls/base.py:88, in reverse(viewname, urlconf, args, kwargs, current_app)
83 if ns_pattern:
84 resolver = get_ns_resolver(
85 ns_pattern, resolver, tuple(ns_converters.items())
86 )
---> 88 return resolver._reverse_with_prefix(view, prefix, *args, **kwargs)
File /usr/local/lib/python3.12/site-packages/django/urls/resolvers.py:831, in URLResolver._reverse_with_prefix(self, lookup_view, _prefix, *args, **kwargs)
826 else:
827 msg = (
828 "Reverse for '%(view)s' not found. '%(view)s' is not "
829 "a valid view function or pattern name." % {"view": lookup_view_s}
830 )
--> 831 raise NoReverseMatch(msg)
NoReverseMatch: Reverse for 'chat_chatroom_changelist' not found. 'chat_chatroom_changelist' is not a valid view function or pattern name.
Project structure
_|apps
__|chat
___|admin
____|admin.py
___|models
____|chat.py
___|url.py
___|...
__|...
__|asgi.py
__|wsgi.py
_|settings
__|main.py
__|base.py
__|jazzmin.py
_|...
Share
Improve this question
edited Feb 15 at 20:09
Anton
asked Feb 15 at 18:04
AntonAnton
771 silver badge8 bronze badges
4
|
1 Answer
Reset to default 0I just added __init__.py
to the admin directory
from apps.chat.admin.admin import ChatRoomAdmin, MessageAdmin
__all__ = ['ChatRoomAdmin', 'MessageAdmin']
print(..)
the reverse lookups yourself? – willeM_ Van Onsem Commented Feb 16 at 6:20