0

我正在为一位摄影师开发一个项目,该项目有一个名为 Categories 的应用程序:所有照片都有 4 个预定类别,每张照片都属于一个类别。

我想要的是管理员有一个名为Categories. 当您单击它时,管理员必须显示 4 个预定类别,当您单击特定类别时,必须有上传照片的选项。

我的意思是,本节的最终结构必须是:

管理---->类别------>

  1. CATEGORY 1 ----->上传属于cat1的照片
  2. CATEGORY 2 ----->上传属于cat2的照片
  3. CATEGORY 3 ----->上传属于cat3的照片
  4. CATEGORY 4 ----->上传属于cat4的照片

我有这个代码:

class Category(models.Model):

    CATEGORY_CHOICES = (
        ('CAT1', 'Category 1'),
        ('CAT2', 'Category 2'),
        ('CAT3', 'Category 3'),
        ('CAT4', 'Category 4'),
        )
    category = models.CharField(verbose_name='Category', max_length=3, choices=CATEGORY_CHOICES, help_text='Choose de category of the image upload')

    def __unicode__(self):
        return u"%s"%self.category

    class Meta:
        verbose_name='Image'
        verbose_name_plural='Images'


class ImageCategory(models.Model):
    category = models.ForeignKey(Category, verbose_name='Category')
    image = models.ImageField(verbose_name='Image', upload_to='images/')

    def __unicode__(self):
        return u"%s"%self.category

    class Meta:
        verbose_name='Image'
    verbose_name_plural='Images'

在管理员中:

class ImageCategoryInline(admin.TabularInline):
    model=ImageCategory
    classes=('open',)
    inline_classes=('open',)
    extra=0

class CategoryAdmin(admin.ModelAdmin):
    inlines = [ImageCategoryInline]

admin.site.register(Category, CategoryAdmin)
4

1 回答 1

0

一个想法:使每个图像成为具有类别外键的模型。然后使用图像的 admin inline 并将其添加到类别管理类中。

有了这个,您可以在每个类别中拥有无限数量的图像,并在管理员中添加和删除它们。

事实上,这就是你已经做过的!这种方法有问题吗?

于 2013-10-31T11:58:03.533 回答