Django admin drop down с очень длинным описанием/текстом
как на картинке в админ панели при создании поста:
Это в основном один из пунктов выпадающего меню, он такой длинный, есть ли идеи, как я могу изменить его на многострочный? Или, возможно, изменить выпадающее меню на "выберите таблицу", администратору в этом случае нужно прочитать описание, поэтому неразумно, чтобы оно было отформатировано таким образом. У меня есть пример кода: models.py
class CreatePost(models.Model):
subject = models.CharField(max_length=99)
desc = models.TextField(max_length=9000)
isSolved = models.BooleanField(default=False) # a button
user = models.ForeignKey(User, on_delete=models.CASCADE,related_name="user_post")
def __str__(self):
return format_html('SUBJECT : {} <br/> DESCRIPTION : {} <br/> Email : {} <br/> ',self.subject, self.desc, self.user.username)
# remember to show the name of ticket sender
class RespondToPost(models.Model):
ticket = models.ForeignKey(CreatePost,on_delete=models.CASCADE)
to = models.EmailField(max_length=320)
content = models.TextField()
def __str__(self):
return format_html('SUBJECT : {} <br/> DESCRIPTION : {} <br/> EMAIL : {} <br/> ',self.post.subject, self.post.desc, self.post.user.username)
admin.py
class CreatePostAdmin(admin.ModelAdmin):
list_display = ('id', '__str__')
class Meta:
model = models.CreatePost
class RespondToPostAdmin(admin.ModelAdmin):
list_display = ('id', '__str__', 'to', 'content')
class Meta:
model = models.RespondToPost
есть идеи?
Вы можете добавить пользовательское поле в list_display
и сократить его содержание, как вам нравится:
from django.utils.text import Truncator # for shortening a text
class CreatePostAdmin(admin.ModelAdmin):
list_display = ('id', 'get_truncated_str')
class Meta:
model = models.CreatePost
def get_truncated_str(self, obj):
return Truncator(str(obj)).words(10)