ruchej
@ruchej
Конструктор мебели. Пишу макросы для К3-Мебель

Что не правильно в связях модели или админки?

Доброго дня!
Не хватает знаний и поиск пока не помог.
Пишу свой велосипед фотогалереи.
Задача: есть езделие, которое имеет несколько фотографий.
В админке создаю изделие. В верхней части данные изделия, в нижней связанная таблица для загрузки картинок.
У меня выдаёт ошибку
: (admin.E202) 'photolog.Images' has no ForeignKey to 'photolog.PhotoObject'

Данные
# models.py

class Images(models.Model):

    img = models.ImageField(upload_to='photolog', verbose_name='Изображение')

    class Meta:
        verbose_name = 'Изображение'
        verbose_name_plural = 'Изображения'

    def thumb(self):
        if self.img:
            path = self.img.url
            return format_html('<img src="{}" height="60">'.format(path))
        else:
            return '(ПУСТО)'


class PhotoObject(models.Model):
    'Фотообъект - объект, у которого больше одной фотографии'

    imgs = models.ForeignKey(Images, blank=True, null=True, verbose_name='Картинки', on_delete=models.CASCADE)
    title = models.CharField(max_length=200, verbose_name='Заголовок')
    slug = models.SlugField(max_length=200, verbose_name='url статьи')
    description = models.CharField(max_length=512, blank=True, null=True, verbose_name='Краткое описание')
    keywords = models.CharField(max_length=255, blank=True, null=True, verbose_name='Ключевые слова')
    
    class Meta:
        verbose_name = 'Фотообъект'
        verbose_name_plural = 'Фотообъекты'

    def __str__(self):
        return self.title

# admin.py

class ImagesAdmin(admin.TabularInline):
    
    model = Images
    extra = 1
    fields = ( 'img', 'thumb', )
    readonly_fields = ('thumb',)


@admin.register(PhotoObject)
class PhotoObjectAdmin(admin.ModelAdmin):

    list_display = ('title', 'slug')
    fieldsets = [
        (None, 
            {'fields': (('title', 'slug'), 'keywords', 'description')}),
    ]
    prepopulated_fields = {'slug': ('title',)}
    inlines = [ImagesAdmin]

  • Вопрос задан
  • 157 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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