Skip to content

admin

django_spire.ai.chat.admin

ChatAdmin

Bases: ModelAdmin

list_display = ('name', 'user', 'view_chat_messages_link', 'created_datetime') class-attribute instance-attribute

ordering = ('-id',) class-attribute instance-attribute

search_fields = ('id', 'name') class-attribute instance-attribute

get_queryset

Source code in django_spire/ai/chat/admin.py
def get_queryset(self, request: HttpRequest) -> QuerySet[models.Chat]:
    queryset = super().get_queryset(request)

    return queryset.annotate(_message_count=Count('message', distinct=True))

get_readonly_fields

Source code in django_spire/ai/chat/admin.py
def get_readonly_fields(self, request: HttpRequest, obj: Model | None = None) -> list[str]:
    return [field.name for field in self.model._meta.fields]

has_add_permission

Source code in django_spire/ai/chat/admin.py
def has_add_permission(self, request: HttpRequest) -> bool:
    return False
Source code in django_spire/ai/chat/admin.py
@admin.display(description='Messages', ordering='_message_count')
def view_chat_messages_link(self, chat: models.Chat) -> str:
    url = admin_changelist_url(models.ChatMessage, chat__id=str(chat.id))

    return format_html('<a href="{}">{} Messages</a>', url, chat._message_count)

ChatMessageAdmin

Bases: ModelAdmin

list_display = ('content_body', 'chat', 'chat__user', 'is_processed', 'is_viewed', 'created_datetime') class-attribute instance-attribute

ordering = ('-id',) class-attribute instance-attribute

search_fields = ('id', 'sender', 'chat__name') class-attribute instance-attribute

content_body

Source code in django_spire/ai/chat/admin.py
@admin.display(description='Body')
def content_body(self, chat_message: models.ChatMessage) -> str:
    return str(chat_message)

get_readonly_fields

Source code in django_spire/ai/chat/admin.py
def get_readonly_fields(self, request: HttpRequest, obj: Model | None = None) -> list[str]:
    return [field.name for field in self.model._meta.fields]

has_add_permission

Source code in django_spire/ai/chat/admin.py
def has_add_permission(self, request: HttpRequest) -> bool:
    return False