【发布时间】:2011-01-30 20:42:20
【问题描述】:
我有一个类似于以下的模型(简化):
models.py
class Sample(models.Model):
name=models.CharField(max_length=200)
class Action(models.Model):
samples=models.ManyToManyField(Sample)
title=models.CharField(max_length=200)
description=models.TextField()
现在,如果 Action.samples 本来是 ForeignKey 而不是 ManyToManyField,当我在 Django Admin 中的 Sample 中将 Action 显示为 TabularInline 时,我会得到一些行,每个都包含一个很好的表单来编辑或添加另一个Action。然而;当我使用以下内容将上述内容显示为内联时:
class ActionInline(admin.TabularInline):
model=Action.samples.through
我得到一个列出所有可用操作的选择框,而不是一个漂亮的表单来创建新的Action。
我的问题确实是:如何将 ManyToMany 关系显示为内联表单以输入所描述的信息?
原则上应该是可能的,因为从Sample 的角度来看,两种情况下的情况是相同的;每个Sample 都有一个Actions 列表,无论关系是ForeignKey 还是ManyToManyRelation。还;通过Sample 管理页面,我不想从现有的Actions 中进行选择,只想创建新的或编辑旧的。
【问题讨论】:
标签: django django-models django-admin