如何在Django 1.0中创建管理内联线?
我正在研究Django书中的例子,但这本书是为0.96编写的,我使用的是1.0.2,是的,我知道,这不是最好的主意。但是阅读Django的“将你的应用程序从0.96移植到1.0”文档已经为我消除了大部分差异。直到我需要在管理页面上实现第二个模型的内联编辑 我使用自定义关键字搜索模型,允许您搜索使用Django的Flatpages应用程序制作的页面。模型如下:如何在Django 1.0中创建管理内联线?,django,django-admin,Django,Django Admin,我正在研究Django书中的例子,但这本书是为0.96编写的,我使用的是1.0.2,是的,我知道,这不是最好的主意。但是阅读Django的“将你的应用程序从0.96移植到1.0”文档已经为我消除了大部分差异。直到我需要在管理页面上实现第二个模型的内联编辑 我使用自定义关键字搜索模型,允许您搜索使用Django的Flatpages应用程序制作的页面。模型如下: 类搜索关键字(models.Model): 要为Flatpages管理页面上显示的SearchKeyword设置StackedLine
类搜索关键字(models.Model):
要为Flatpages管理页面上显示的SearchKeyword设置StackedLine,my admin.py应该是什么样子?您可以执行以下操作:
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)
更多信息请访问官方网站
更新:修复代码以满足您的要求。请退出
我想这会很好一旦我让它正常工作,下面是代码。谢谢你们的帮助
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)
hrm,这基本上就是我所拥有的,但它不起作用,在我复制了你的代码后仍然不起作用。我猜还有其他错误…使用上面的代码(一旦你将FlatpageAdmin修复为FlatpageAdmin),我猜你会得到一个AlreadyRegistered错误;您可能需要先注销admin.site.unregister(FlatPage)。您可能还想从contrib/flatpages/admin.py中继承FlatPageAdmin。我曾短暂地看到一个AlreadyRegistered错误,但当我刷新页面时,它消失了。我会尝试注销的,谢谢。修复了Flatpage/Flatpage的错误。使用admin.site。Carl建议的注销(Flatpage)可以很好地解决我的问题。我真的很想强调一下django文档有多棒。你应该读一读,扔掉那本过时的书……然后一边写一边读即将出版的第二版。在线提供。
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)