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
эта переменная показывает, сколько пустых строк должно быть показано в панели администратора.