mod: админка (01) ImageAdmin (02) +виртуальные поле author из filer
This commit is contained in:
@@ -44,6 +44,17 @@ class TbImageAdminForm(forms.ModelForm):
|
|||||||
help_text='Текст для title-атрибута картинки <tt><img title="" .../></tt>.'
|
help_text='Текст для title-атрибута картинки <tt><img title="" .../></tt>.'
|
||||||
' Будет сохранён в filer_image.default_caption'
|
' Будет сохранён в filer_image.default_caption'
|
||||||
)
|
)
|
||||||
|
filer_copyright = forms.CharField(
|
||||||
|
max_length=255,
|
||||||
|
required=False,
|
||||||
|
widget=forms.TextInput(attrs={
|
||||||
|
'placeholder': 'XXXX, Авторские права на изображение',
|
||||||
|
'class': 'vTextField',
|
||||||
|
'cols': 120,
|
||||||
|
}),
|
||||||
|
label='Copyright',
|
||||||
|
help_text='Авторские права на изображение (например: <tt>2025, Sergei Erjemin</tt>. Будет сохранён в filer_image.author'
|
||||||
|
)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = TbImage
|
model = TbImage
|
||||||
@@ -62,6 +73,7 @@ class TbImageAdminForm(forms.ModelForm):
|
|||||||
# Получаем текущие значения из filer и заполняем виртуальные поля
|
# Получаем текущие значения из filer и заполняем виртуальные поля
|
||||||
self.fields['filer_alt_text'].initial = filer_image.default_alt_text or ''
|
self.fields['filer_alt_text'].initial = filer_image.default_alt_text or ''
|
||||||
self.fields['filer_caption'].initial = filer_image.default_caption or ''
|
self.fields['filer_caption'].initial = filer_image.default_caption or ''
|
||||||
|
self.fields['filer_copyright'].initial = filer_image.author or ''
|
||||||
except Exception:
|
except Exception:
|
||||||
# Если ошибка при получении filer_image, просто оставляем пустые значения
|
# Если ошибка при получении filer_image, просто оставляем пустые значения
|
||||||
pass
|
pass
|
||||||
@@ -87,7 +99,8 @@ class ImageAdmin(admin.ModelAdmin):
|
|||||||
'description': 'Основные данные об изображении и источнике',
|
'description': 'Основные данные об изображении и источнике',
|
||||||
}),
|
}),
|
||||||
('Метаданные filer (SEO для картинок)', {
|
('Метаданные filer (SEO для картинок)', {
|
||||||
'fields': ('_display_filer_alt_text', '_display_filer_caption', 'filer_alt_text', 'filer_caption'),
|
'fields': ('_display_filer_alt_text', '_display_filer_caption', 'filer_alt_text', 'filer_caption',
|
||||||
|
'filer_copyright'),
|
||||||
'description': 'Редактируемые поля для заполнения Alt текста и описания в filer. Если не заполнить,'
|
'description': 'Редактируемые поля для заполнения Alt текста и описания в filer. Если не заполнить,'
|
||||||
' текущие значения останутся без изменений (или не будут заполнены при создании).',
|
' текущие значения останутся без изменений (или не будут заполнены при создании).',
|
||||||
# 'classes': ('collapse',),
|
# 'classes': ('collapse',),
|
||||||
@@ -179,16 +192,21 @@ class ImageAdmin(admin.ModelAdmin):
|
|||||||
try:
|
try:
|
||||||
filer_image = obj.image
|
filer_image = obj.image
|
||||||
|
|
||||||
# Обновляем alt_text, если было заполнено в форме
|
# Обновляем alt_text (ALT), если было заполнено в форме
|
||||||
alt_text = form.cleaned_data.get('filer_alt_text', '').strip()
|
alt_text = form.cleaned_data.get('filer_alt_text', '').strip()
|
||||||
if alt_text: # Если пользователь что-то ввел
|
if alt_text: # Если пользователь что-то ввел
|
||||||
filer_image.default_alt_text = alt_text
|
filer_image.default_alt_text = alt_text
|
||||||
|
|
||||||
# Обновляем caption, если было заполнено в форме
|
# Обновляем caption (TITLE), если было заполнено в форме
|
||||||
caption = form.cleaned_data.get('filer_caption', '').strip()
|
caption = form.cleaned_data.get('filer_caption', '').strip()
|
||||||
if caption: # Если пользователь что-то ввел
|
if caption: # Если пользователь что-то ввел
|
||||||
filer_image.default_caption = caption
|
filer_image.default_caption = caption
|
||||||
|
|
||||||
|
# Обновляем author (copyrughight), если было заполнено в форме
|
||||||
|
author = form.cleaned_data.get('filer_copyright', '').strip()
|
||||||
|
if author:
|
||||||
|
filer_image.author = author
|
||||||
|
|
||||||
# Сохраняем filer_image с новыми метаданными
|
# Сохраняем filer_image с новыми метаданными
|
||||||
filer_image.save()
|
filer_image.save()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user