Как создать дополнительную опцию в админке django

хочу создать подобное в Django admin для сайта фильмов enter image description here

дополнительная опция как я могу это сделать? какой лучший способ?

Чтобы добавить еще одно поле к вашей модели в админке, просто создайте пользовательский ModelAdmin для вашей модели и укажите поля, которые вы хотите показать в атрибуте list_display.

from .models import YourModel
@admin.register(YourModel)
class CourseAdmin(admin.ModelAdmin):
    list_display = ['title', 'subject', 'created']
    # list_filter = ['created', 'subject']
    # search_fields = ['title', 'overview']
    # prepopulated_fields = {'slug': ('title', )}

Просмотрите документацию Django для получения дополнительной информации

Вы можете добавить дополнительные свойства к вашим экземплярам модели в django admin. Если вы не знаете, что такое django admin, обязательно посмотрите документацию. В двух словах это панель, которая помогает вам управлять вашими моделями. Чтобы сделать это в вашей admin.py (если у вас нет такой панели, создайте ее), вам нужно добавить что-то вроде этого.

from django.contrib import admin
from your_app.models import ExampleModel # import your model 


class ExampleModelAdmin(admin.ModelAdmin):
    fields = ("example_field1", "example_field5", "example_field_method",)
    list_display = ('example_field3', 'example_field2')
     
    def example_field_method(self, instance):
        return instance.name_field.upper()


admin.site.register(ExampleModel, ExampleModelAdmin) # import it to admin site

По сути, fields принимает кортеж с полями, которые вы хотите отобразить на странице подробностей вашей модели в админке. Чтобы добавить свойство, которого не существует, или вам нужно создать метод типа example_field_method, который принимает параметр экземпляра модели и возвращает значение, которое будет отображаться в вашей панели администратора и использовать его в fields или в других полях. Вы можете настроить свою модель в зависимости от ваших потребностей, добавив поля в класс ExampleModelAdmin. В официальной документации все это описано. Есть и второй вариант, вы можете добавить этот метод в вашу модель django и использовать декоратор @property. Это также будет действительным свойством в вашем django admin. Помните, что эта функция должна возвращать значение, которое будет отображаться в админке сайта.

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