在Django管理员中嵌套内联?

好吧,我的设计很简单。

class Update(models.Model):

pub_date = models.DateField()

title = models.CharField(max_length=512)

class Post(models.Model):

update = models.ForeignKey(Update)

body = models.TextField()

order = models.PositiveIntegerField(blank=True)

class Media(models.Model):

post = models.ForeignKey(Post)

thumb = models.ImageField(upload_to='frontpage')

fullImagePath = models.ImageField(upload_to='frontpage')

是否有一种简单的方法允许用户在一页上全部创建更新?

我想要的是用户能够转到管理界面,添加新的更新,然后在编辑更新时添加一个或多个帖子,每个帖子都有一个或多个Media项目。另外,我希望用户能够在更新内重新排列帖子。

我当前的尝试在admin.py中包含以下内容:

class MediaInline(admin.StackedInline):

model = Media

class PostAdmin(admin.ModelAdmin):

inlines = [MediaInline,]

这使用户可以添加一个新的Post项,选择相关的Update,向其添加Media项,然后单击Save-很好。但是无法在同一位置查看属于给定更新的所有帖子,这又意味着您不能在更新内进行帖子发布。对于最终用户而言,这确实很令人困惑。

回答:

到目前为止,在django.contrib.admin中还没有“内置”方式来嵌套嵌套的内联(内联在内联内)。通过拥有自己的ModelAdmin和InlineModelAdmin子类来启用这种功能,可以完成类似的事情。请参阅此故障单上的补丁http://code.djangoproject.com/ticket/9025,以获取有关如何实现此故障的想法。您还需要提供自己的模板,这些模板将在顶级内联和子内联上嵌套嵌套迭代。

以上是 在Django管理员中嵌套内联? 的全部内容, 来源链接: utcz.com/qa/416172.html

回到顶部