1

我正在研究我拥有的 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

我的 admin.py 应该是什么样子才能为显示在 Flatpages 管理页面上的 SearchKeyword 设置 StackedInline?

4

3 回答 3

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 文档中的更多信息

更新:修复了代码以满足您的要求。

于 2009-02-10T16:46:25.270 回答
0

查看 链接文本 ,我认为这会恰到好处

于 2009-02-11T10:37:00.190 回答
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)
于 2009-02-11T21:55:09.810 回答