2
AdminのGalleryにインラインImageオブジェクトを追加したいと思っています(下記のadmin.pyで試してみます)。問題は、イメージモデルにcontent_typeフィールドがないことです。例外が発生する。動画オブジェクトでも同じことをしたいと思います。ここで私は簡単にそれを行うことができます私のmodels.pyとadmin.pyと管理パネルで逆引き一般関係のインラインオブジェクトを編集するにはどうすればよいですか?
以下より説明私のmodels.py
# -*- coding: utf-8 -*-
# Create your models here.
from apps.util import models
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
from django.utils.translation import ugettext_lazy as _
class Image(models.Model):
"""
"""
title = models.CharField(_('Title'), max_length=255)
image = models.ImageField(upload_to="images")
pub_date = models.DateTimeField(_('Date published'))
def __unicode__(self):
return self.title
class Video(models.Model):
title = models.CharField(_('Title'), max_length=255)
video = models.FileField(upload_to="videos")
pub_date = models.DateTimeField(_('Date published'))
def __unicode__(self):
return self.title
class Gallery(models.Model):
title = models.CharField(_('Title'), max_length=255)
pub_date = models.DateTimeField(_('Date published'))
def __unicode__(self):
return self.title
class GalleryItem(models.Model):
gallery = models.ForeignKey(Gallery)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
def __unicode__(self):
return str(self.object_id)
マイadmin.py
from django.contrib import admin
from apps.webmachinist.media.models import *
from apps.webmachinist.portfolio.models import *
from django.contrib.contenttypes import generic
class GalleryInline(generic.GenericTabularInline):
model = Image
class GalleryAdmin(admin.ModelAdmin):
inlines = [
GalleryInline,
]
admin.site.register(Image)
admin.site.register(Video)
admin.site.register(Gallery, GalleryAdmin)
admin.site.register(GalleryItem)
admin.site.register(PortfolioEntry)
です逆の方法でギャラリーを画像に追加する:
class GalleryInline(generic.GenericTabularInline):
model = GalleryItem
class GalleryAdmin(admin.ModelAdmin):
inlines = [
GalleryInline,
]
admin.site.register(Image, GalleryAdmin)
ギャラリーのタイトルで選択できますが、インラインはGalleryItemsです しかし、それは私が望むものではありません。ギャラリーだけでなく、後の動画に画像を追加したいのです。
簡単にできますか?
私はそれを試みましたが、 'GalleryItem' content_typeは' Gallery'を指しています。どういうわけか、 'Gallery'に' Gallery'を添付したいと思っています。 – Memke
これで、genericinlineを使用しないでください – Memke