如何获取Django Flatpages模板的反向URL
我正在一个我在本地服务器上开发的网站中使用flatpages.我需要备份flatpage的数据,以便在最终服务器中使用它.有谁知道怎么做?
我主要使用flatpages作为一个站点(来自站点框架).如何为所有创建的flatpages标记现有网站默认值?每次为每个创建的页面选择相同的站点都浪费时间.有没有办法在模型或保存方法中覆盖它?
我在我们的网站上使用django flatpages获取了很多内容,我想扩展它以接受内容中的django模板标签.
我找到了这个片段,但经过一番讽刺后,我无法让它发挥作用.假设您需要"子类"django flatpages应用程序才能使其正常工作,我是否正确?这是最好的方式吗?我不太确定如何构建它,因为我真的不想直接修改django发行版.
我有一些带有空content
字段的平面页面及其内容在模板中(用template_name
字段给出).
django.contrib.flatpages
FlatPage
基本上; FlatPage
在保持contrib.flatpages
功能的同时摆脱模型.我不清楚如何解决这个问题.如果有一种干净的修改方式(比如add_to_class
)FlatPages
以获取除数据库之外的其他地方我更喜欢的信息.也许元数据可以插入到模板中,然后读取此数据的特殊管理器将替换默认的管理器FlatPages
.
如果我不喜欢对flatpages的管理功能进行手动编辑,那么如何将数据库排除在外?
如何在 django 中访问扩展平面中的字段?
我是这样写的:
class ExtendedFlatPage(FlatPage):
teaser = CharField(max_length=150)
class ExtendedFlatPageForm(FlatpageForm):
teaser = CharField(max_length=150)
class Meta:
model = ExtendedFlatPage
class ExtendedFlatPageAdmin(FlatPageAdmin):
form = ExtendedFlatPageForm
fieldsets = (
(None, {'fields': ('url', 'title', 'teaser', 'content', 'sites',)}),
)
admin.site.unregister(FlatPage)
admin.site.register(ExtendedFlatPage, ExtendedFlatPageAdmin)
Run Code Online (Sandbox Code Playgroud)
在 admin 中创建是可以的。但后来在 flatpages/default.html 我试过这个:
<html>
<body>
<h1>{{ flatpage.title }}</h1>
<strong>{{ flatpage.teaser }}</strong>
<p>{{ flatpage.content }}</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
而且没有 flatpage.teaser!怎么了?
我正在创建一个django应用程序.用户登录并显示由flatpages应用程序管理的静态网页.
以下是来自开发服务器的典型状态消息:
[15/Aug/2013 18:43:16] "GET / HTTP/1.1" 200 1263
[15/Aug/2013 18:43:23] "POST / HTTP/1.1" 302 0
[15/Aug/2013 18:43:23] "GET /home HTTP/1.1" 301 0
[15/Aug/2013 18:43:23] "GET /home/ HTTP/1.1" 200 4529
Run Code Online (Sandbox Code Playgroud)
为什么服务器以302响应put请求?
是什么导致了第三条线?为什么要发送此消息?这不应该是flatpages中间件抓住的东西吗?我的网络客户端是否发送了第四行的请求?怎么知道这样做?
我想最重要的问题是:我做错了吗?
谢谢您的帮助!
urls.py
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^$', 'django.contrib.auth.views.login'),
url(r'^logout$', 'guide.views.logout_view'),
# other patterns
(r'', include('django.contrib.flatpages.urls')),
)
Run Code Online (Sandbox Code Playgroud)
views.py
def home(request):
if request.user.is_authenticated() == False:
return HttpResponseRedirect('/')
return HttpResponseRedirect('/home/')
Run Code Online (Sandbox Code Playgroud)
来自settings.py的摘录
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
'guide.middleware.LogActivity'
)
INSTALLED_APPS …
Run Code Online (Sandbox Code Playgroud) django response.redirect http django-flatpages http-response-codes
我想知道是否有比Django的flatpages应用程序更好的东西,因为flatpages甚至不支持状态(草稿,发布)或发布日期等内容.那里有什么吗?
没有太多细节,我正在构建一个Django站点,我想实现一个CMS解决方案,同时在页面布局,导航和组织方面具有很大的灵活性.
它主要用于我们的文档,到目前为止,我已经有很多头痛试图找出Django CMS的来龙去脉.
有经验的Django开发人员会建议我使用像tiny_mce这样的平面页吗?
有没有办法为Django flatpages(或multilingual-ng,flatpages +翻译)提供可逆的命名URL?
如果没有,是否有类似的应用程序可以为可通过管理员编辑的页面命名URL?(我宁愿避免使用任何庞然大物的CMSs.)
编辑:请参阅下面答案中的评论,以便进一步讨论和澄清问题.
django ×10
django-flatpages ×10
python ×3
django-cms ×1
http ×1
multilingual ×1
reverse ×1
templates ×1