@aassdds
Люблю борщ и PHP

Как привязать к одной сущности несколько картинок?

Добрый день !
Есть модель:
class ShopCat(models.Model):
    title = models.CharField(max_length=100)

    def __unicode__(self):
        return self.title


class ShopItem(models.Model):
    cat_id = models.ForeignKey(ShopCat)
    title = models.CharField(max_length=100)
    sostav = models.TextField(max_length=1000)
    descr = models.TextField(max_length=1000)
    creation_date = models.DateTimeField(auto_now_add=True, auto_now=False)
    updated = models.DateTimeField(auto_now_add=False, auto_now=False, blank=True, null=True)
    price = models.IntegerField()

    def __unicode__(self):
        return self.title


class ShopItemImg(models.Model):
    ShopItem_id = models.ForeignKey(ShopItem)
    img = models.ImageField(upload_to='shop/', null=True, blank=True)


И в admin.py пишу:
class ShopItemImgInline(admin.ModelAdmin):
    model = ShopItemImg
    extra = 3

class ShopItemAdmin(admin.ModelAdmin):
    fieldsets = [
        (None, {'fields': ['title', 'cat_id', 'price']}),
        ("Тексты", {'fields': ['descr', 'sostav']}),
    ]

admin.site.register(ShopItem, ShopItemAdmin)
admin.site.register(ShopCat)
admin.site.register(ShopItemImg, ShopItemImgInline)


Все хорошо работает, НО
При попытке в админском классе ShopItemImgInline(admin.ModelAdmin) сменить ModelAdmin на StackedInline или TabularInline - выдает ошибку : AttributeError: 'ShopItemImgInline' object has no attribute 'urls'

Подскажите - где накосячил ?
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
@aassdds Автор вопроса
Люблю борщ и PHP
Разобрался сам
Ошибка была в том что я регистрировал admin.site.register(ShopItemImg, ShopItemImgInline)
А не надо было )
Если кому интересно - вот рабочий вариант админки:
# -*- coding: utf-8 -*-
from django.contrib import admin
from .models import ShopCat, ShopItem, ShopItemImg


class ShopItemImgInline(admin.TabularInline):
    model = ShopItemImg


class ShopItemAdmin(admin.ModelAdmin):
    fieldsets = [
        (None, {'fields': ['title', 'cat_id', 'price']}),
        ("Тексты", {'fields': ['descr', 'sostav']}),
    ]
    inlines = [ShopItemImgInline]


admin.site.register(ShopItem, ShopItemAdmin)
admin.site.register(ShopCat)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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