@Alex161

Кто нибудь, объясните как django передаёт, request именно в request, queryset именно queryset, если я добавлю ещё один аргумент что там будет?

@admin.register(Movie)
class MovieAdmin(admin.ModelAdmin):
    """Фильмы"""
    prepopulated_fields = {'slug': ('title',)}
    list_display = ("title", "category", "slug", "draft")
    list_filter = ("category", "year")
    search_fields = ("title", "category__name")
    inlines = [MovieShotsInline, ReviewInline]
    save_on_top = True
    save_as = True
    list_editable = ("draft",)
    actions = ['unpublish', 'publish']
    form = MovieAdminForm
    readonly_fields = ('get_image',)
    fieldsets = (
        (None, {
            "fields": ("title",)
        }),
        (None, {
            "fields": ("descriptions", ("image", 'get_image'))
        }),
        (None, {
            "fields": (("year", "world_premiere", "country"),)
        }),
        ("Actors", {
            "classes": ("collapse",),
            "fields": (("actors", "directors", "genres", "category"),)
        }),
        (None, {
            "fields": (("budget", "fees_in_usa", "fees_in_world"),)
        }),
        ("Options", {
            "fields": (("slug", "draft"),)
        }),
    )

    def get_image(self, obj):
        """Вывод постера"""
        return mark_safe(f"<img src={obj.image.url} width='100' height='110'>")

    def unpublish(self, request, queryset):
        """Снять с публикации"""
        row_update = queryset.update(draft=True)
        print(type(request))
        if row_update == 1:
            message_bit = "1 одна запись была обновлена"
        else:
            message_bit = f"{row_update} записей было изменено"
        self.message_user(request, f"{message_bit}")

    def publish(self, request, queryset):
        """ Опубликовать """
        row_update = queryset.update(draft=False)
        if row_update == 1:
            message_bit = "1 одна запись была обновлена"
        else:
            message_bit = f"{row_update} записей было изменено"
        self.message_user(request, f"{message_bit}")

    publish.short_description = 'Опубликовать'
    publish.allowed_permissions = ('change',)

    unpublish.short_description = 'Снять с публикации'
    unpublish.allowed_permissions = ('change',)

    get_image.short_description = 'Постер'
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 1
@mkone112
Начинающий питонист.
А в чем проблема? Просто сингнатура вызова, определенная для класса. Посмотри исходники, и все будет как на ладони.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы