0

私は複数の django サイトに取り組んでおり、プロジェクトをクライアントに見栄えよくすることが制限されています。

たとえば、同じアプリに 2 つのモデルの画像と画像ギャラリーがあります。ギャラリーの管理者エントリと、その中に画像のテーブルがあるだけで、とてもいいでしょう。

4

2 に答える 2

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 を作成し、ギャラリーの管理クラスのみを登録します。

class ImageInline(admin.TabularInline):
   model = Image

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

admin.site.register(Gallery, GalleryAdmin)
于 2013-02-09T12:45:42.910 に答える
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)
于 2013-02-11T06:28:56.520 に答える