多くの一般的な関係を持つことができる Django モデルがあります。これは、ジャンクション モデルを手動で作成することによって実現されます。
class ContentProjectContentItem(models.Model):
content_project = models.ForeignKey('ContentProject')
# Generic relations via Content Type Framework
object_id = models.PositiveIntegerField()
content_type = models.ForeignKey(ContentType)
item = generic.GenericForeignKey('content_type', 'object_id')
class Meta:
unique_together = ('content_project', 'object_id', 'content_type')
app_label = "cms"
これは、ManyToManyField を介して親モデルに関連付けられています。
class ContentProject(models.Model):
title = models.CharField(max_length=100)
date_created = models.DateTimeField(auto_now_add=True)
# Related content (Assets, Resources, Media, etc)
content_items = models.ManyToManyField(ContentProjectContentItem)
私はまだ Django 管理者を使用してスキルを開発しているため、複数の ContentProjectContentItems を ContentProject に追加できるインラインを作成する方法がわかりません。を使用してみgeneric.GenericStackedInline
ましたが、役に立ちませんでした:
class ContentItemInline(generic.GenericStackedInline):
name = "content_project"
model = ContentProjectContentItem
class ContentProjectAdmin(MPTTModelAdmin):
list_display = ('title' , 'date_created')
search_fields = ('title' , 'date_created')
inlines = [
ContentItemInline,
]
標準の ManyToMany の複数選択が表示されているだけですcontent_items
(これは私が期待することです)。ContentProjectAdmin
ジャンクション テーブルの一般的な関係を認識する方法がわかりません。何かご意見は?