У меня есть связанные модели (через FK) и мне надо сделать в админке добавление одной модели из другой. И то что там по умолчанию есть плюсик для этого - не подходит. Как мне это кастомизировать? В одной модели есть всего одно поле - изображение (загружается как раз там же в админке). Может добавлю что-то еще потом, но пока только одно. А другая связана с ней и у нее много разных атрибутов... Короче вот код:
class CertificateTemplate(models.Model):
image = models.ImageField('Изображение')
class Meta:
db_table = 'certificate_templates'
verbose_name = 'шаблон сертификата'
verbose_name_plural = 'Шаблоны сертификатов'
class CertificateTemplateLabel(models.Model):
description = models.CharField(max_length=50, verbose_name='Описание')
template = models.ForeignKey(CertificateTemplate, models.CASCADE, related_name='labels', verbose_name=CertificateTemplate._meta.verbose_name)
text_length_min = models.PositiveIntegerField('Минимальная длина')
text_length_max = models.PositiveIntegerField('Максимальная длина')
location_x = models.IntegerField('Горизонтальная координата')
location_y = models.IntegerField('Вертикальная координата')
font = models.ForeignKey(Font, models.CASCADE, related_name='+', verbose_name=Font._meta.verbose_name)
font_size = models.PositiveIntegerField('Размер шрифта')
font_color = models.CharField('Цвет шрифта', max_length=7)
def __str__(self):
return self.description
class Meta:
db_table = 'certificate_template_labels'
verbose_name = 'Метка шаблона сертификата'
verbose_name_plural = 'Метки шаблонов сертификатов'
Идея такая: после загрузки изображения оно должно отобразиться на странице (там же в админке) и на нем с помощью например
этой штуки можно выбрать области которые будут метками. Их координаты должны занестись в поля меток которые будут тут же. Также там можно будет выбрать и остальные параметры меток. Подскажите хоть примерно как это туда прикрутить? Виджеты? Мне надо для этого менять шаблоны админки или можно обойтись тщательным конфигурированием через ModelForm, ModelAdmin?
Схематично примерно так я это представляю: