Задать вопрос
@V-ampre

Почему при загрузке нет прав на чтение изображений?

Для изображений к записи в блоге используется модель:
# models.py
class PostBodyImage(models.Model):
    image = models.ImageField("Изображение 960x570px", upload_to=get_post_body_media_path)
    descript = models.CharField("Описание", max_length=100)
    post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='body_images')

# admin.py
class BodyImagesInlines(admin.TabularInline):
    form = PostBodyImageForm
    model = PostBodyImage
    fields = ('get_preview', 'image', 'descript')
    readonly_fields = ('get_preview',)

    def get_preview(self, obj):
        if not obj.image:
            return ''
        im = get_thumbnail(obj.image, '168x100', crop='center', quality=99)
        return mark_safe('<img src="{}">'.format(im.url))
    get_preview.short_description = 'Превью'


class PostAdmin(admin.ModelAdmin):
    form = PostImageControlForm
    fields = ('count', 'status', 'get_preview_url', 'image', 'head_image', 'title', 'descript', 'body', 'main_post', 'category')
    readonly_fields = ('count', 'get_preview_url',)
    formfield_overrides = {
        models.TextField: {'widget': forms.Textarea(attrs={'rows': '4', 'cols': '50'})}
    }
    list_display = ('title', 'get_category', 'main_post', 'count', 'status')
    list_editable = ('main_post', 'status')
    list_filter = ('category', 'main_post', 'status')
    inlines = [
       BodyImagesInlines, 
    ]

    def get_fields(self, request, obj=None):
        """Исключить поле превью из страницы создания поста"""
        fields = list(super(PostAdmin, self).get_fields(request, obj))
        if obj is None:
            fields.remove('get_preview_url')
        return fields

    def get_category(self, obj):
        return ',\n'.join([category.title for category in obj.category.all()])

    def get_preview_url(self, obj):
        return mark_safe('<a target="_blank" href="{}">{}</a>'.format(obj.get_preview_url(), obj.get_preview_url()))
    get_preview_url.short_description = 'Превью'

admin.site.register(Post, PostAdmin)


Проблема в том, что если я добавляю по одному изображению все ок, но если добавить сразу несколько (в инлайнс) то они сохраняются без прав на чтение, соотвественно на страницу не подгружаются...
5e04ae6550e6b066456792.png
  • Вопрос задан
  • 108 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

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

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