如何在单个django模型条目中包含数据行?

时间:2013-02-09 11:49:23

标签: django django-admin

我正在研究多个django网站,并且限制了我的项目让客户看起来很好。

例如,在同一个应用程序中,我有两个模型图像和图像库。只需拥有一个画廊的管理员条目和一个图像表就好了。

2 个答案:

答案 0 :(得分:2)

这正是InlineModelAdmin的用途。像这样使用models.py:

class Gallery(models.Model):
   name = models.CharField(max_length=100)

class Image(models.Model):
   image = models.ImageField()
   gallery = models.ForeignKey(Gallery)

您可以像这样创建一个admin.py,只为Gallery注册一个管理类:

class ImageInline(admin.TabularInline):
   model = Image

class GalleryAdmin(admin.ModelAdmin):
    inlines = [ImageInline]

admin.site.register(Gallery, GalleryAdmin)

答案 1 :(得分:0)

感谢Dirk的帮助,这是我的解决方案。

from django.db import models

PHOTO_PATH = 'media_gallery'

class Gallerys(models.Model):
    title = models.CharField(max_length=30, help_text='Title of the image maximum 30 characters.')
    slug = models.SlugField(unique_for_date='date', help_text='This is automatic, used in the URL.')
    date = models.DateTimeField()

    class Meta:
        verbose_name_plural = "Image Galleries"
        ordering = ('-date',)

    def __unicode__(self):
        return self.title

class Images(models.Model):
    title = models.CharField(max_length=30, help_text='Title of the image maximum 30 characters.')
    content = models.FileField(upload_to=PHOTO_PATH,blank=False, help_text='Ensure the image size is small and it\'s aspect ratio is 16:9.')
    gallery = models.ForeignKey(Gallerys)
    date = models.DateTimeField()

    class Meta:
        verbose_name_plural = "Images"
        ordering = ('-date',)

    def __unicode__(self):
        return self.title

import models
from django.contrib import admin

class ImageInline(admin.TabularInline):
   model = Images

class GallerysAdmin(admin.ModelAdmin):
    list_display = ('title', 'date', 'slug')
    inlines = [ImageInline]

admin.site.register(models.Gallerys,GallerysAdmin)