如何在Django 1.0中进行管理内联?

时间:2009-02-10 16:35:27

标签: django django-admin

我正在研究我所拥有的Django书中的例子,但这本书写的是0.96,我使用的是1.0.2,是的,我知道,不是最好的主意。但阅读Django的“将您的应用程序从0.96移植到1.0”文档已经为我解决了大部分差异。直到我需要在管理页面上实现第二个模型的内联编辑。

我使用自定义关键字搜索模型,允许您搜索使用Django的Flatpages应用程序制作的页面。以下是模型:

class SearchKeyword(models.Model):

    keyword = models.CharField(max_length=50, blank=True)
    page = models.ForeignKey(FlatPage)

    def __unicode__(self):
        return self.keyword

keyword = models.CharField(max_length=50, blank=True) page = models.ForeignKey(FlatPage) def __unicode__(self): return self.keyword

我的admin.py应该如何设置在Flatpages管理页面上显示的SearchKeyword StackedInline?

3 个答案:

答案 0 :(得分:3)

您可以这样做:

class SearchKeywordInline(admin.StackedInline):
    model = SearchKeyword
    extra = 3

class FlatPageAdmin(admin.ModelAdmin):
    inlines = [SearchKeywordInline]

# unregister the FlatPage model from the admin site so I can
# register it again with the inline stuff (Thanks Carl & Jason)
admin.site.unregister(FlatPage)
admin.site.register(FlatPage, FlatPageAdmin)

官方Django docs

中的更多信息

更新:修复了符合您要求的代码。

答案 1 :(得分:0)

退房 link text 我认为那会成为现场

答案 2 :(得分:0)

一旦我正确运行,这是代码。感谢帮助人员

from cms.search.models import SearchKeyword
from django.contrib.flatpages.models import FlatPage
from django.contrib import admin

class SearchKeywordInline(admin.StackedInline):

    model = SearchKeyword
    extra = 3

class FlatPageAdmin(admin.ModelAdmin):

    inlines = [SearchKeywordInline]


# unregister the FlatPage model from the admin site so I can
# register it again with the inline stuff.
admin.site.unregister(FlatPage)
admin.site.register(FlatPage, FlatPageAdmin)