Как создать дополнительную опцию в админке django
хочу создать подобное в Django admin для сайта фильмов
дополнительная опция как я могу это сделать? какой лучший способ?
Чтобы добавить еще одно поле к вашей модели в админке, просто создайте пользовательский 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. Помните, что эта функция должна возвращать значение, которое будет отображаться в админке сайта.