Выбор главного изображения во внешнем ключе

У меня есть следующие две модели:

class Event(models.Model):
    title = models.CharField(max_length=250)
    description = RichTextField()
    start_date = models.DateField()
    start_time = models.TimeField()
    end_date = models.DateField(blank=True, null=True)
    end_time = models.TimeField(blank=True, null=True)
    location = models.CharField(max_length=100)
    volunteers = models.PositiveIntegerField(default=0)
    sdgs = models.ManyToManyField(SDG)

    def __str__(self):
        return f'{self.title}'


class EventPhoto(models.Model):
    event = models.ForeignKey(Event, on_delete=models.CASCADE)
    photo = models.ImageField(upload_to='events/photos')

Один объект Event может содержать несколько фотографий, может 1, может 10, а может 100.

Я использую следующий код внутри моего admin.py файла.

class EventPhotosInline(admin.StackedInline):
    model = EventPhotos

@admin.register(Event)
class EventAdmin(admin.ModelAdmin):
    inlines = [EventPhotosInline,]

Приведенный выше код позволяет мне добавлять объекты EventPhoto во время добавления нового события в приборной панели администратора.

Мой вопрос заключается в том, как мне выбрать одну из многих фотографий в качестве главной фотографии события? Я мог бы легко создать поле изображения внутри модели Event с именем main_photo, но в будущем, если мне нужно будет изменить главную фотографию, я должен буду загрузить новую, все, что мне нужно, это просто использовать одно из многих загруженных изображений в качестве главной фотографии.

Как мне создать что-то похожее на то, что я хочу?!

Я также попробовал добавить поле boolean в модель EventPhoto, которое добавляет флажок, но когда я устанавливаю один из флажков, а затем пытаюсь выбрать другую фотографию, выбираются обе, а я хочу только одну, поэтому нужно отменить выбор старой фотографии и выбрать новую.

Надеюсь, моя идея понятна вам, ребята, и заранее большое спасибо.

Вернуться на верх