Django admin inline автоматически создает несколько полей на панели администратора

У меня есть модель TicketMessage, которая содержит внешний ключ к Ticket. Я хочу, чтобы мое поле TicketMessage message отображалось на моей Ticket панели администратора как инлайн.

Мне удалось это сделать, однако, как показано на изображении ниже, по какой-то причине по умолчанию создается три поля сообщения вместо одного.

Хотелось бы узнать, как сделать так, чтобы по умолчанию показывалось только одно сообщение и причину, почему это происходит в первую очередь.

TicketMessage модель

from django.db import models
from django.utils.translation import gettext as _

from painless.models import TimeStampMixin

class TicketMessage(TimeStampMixin):

    class Meta:
        verbose_name = _("Ticket Message"),
        verbose_name_plural = ("Ticket Messages")

  
    ticket = models.ForeignKey(
        "Ticket",
        default=False,
        on_delete=models.PROTECT,
        related_name="ticket_message",
        help_text="Lorem ipsum"
    )

    message = models.TextField(
        _("message"),
        max_length=500,
        help_text="Lorem ipsum",
    )


    def __str__(self):
        return f"Ticket subject: {self.ticket}"

    def __repr__(self):
        return f"Ticket subject: {self.ticket}"


Администратор билетов

from django.contrib import admin
from django.utils.translation import gettext_lazy as _

from desk.models import (
    Ticket,
    TicketMessage
)


class TicketMessageInline(admin.TabularInline):
    model = TicketMessage


@admin.register(Ticket)
class TicketAdmin(admin.ModelAdmin):

    list_display = (
        'subject',
        'status_choices',
        'priority_choices',
        'is_read',
        'is_important',
        'is_archive',
    )

    list_filter = (
        'is_read',
        'is_important',
        'is_archive',
        'status_choices',
    )

    inlines = (
        TicketMessageInline,
    )

    filter_horizontal = (
        "tags",
    )

    
    fieldsets = (
        (_("Primary Informations"), {
            'fields': (
                'subject',
                'message',
                'status_choices',
                'priority_choices',
            )
        }),

        (_("Options"), {
            'fields': (
                'is_important',
                'is_archive',
                'is_read',
                'is_duplicated',
            )
        }),

        
        (_("Others"), {
            'fields': (
                'department',
                'resolved_at',
            )
        }),

        
        (_("Tags"), {
            'fields': (
                'tags',
            )
        }),
    )

изображение жука Bug imag

в вашем поточном использовании

extra = 1

эта переменная показывает, сколько пустых строк должно быть показано в панели администратора.

Вернуться на верх