前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django使用flatpages添加自定义页面

Django使用flatpages添加自定义页面

作者头像
菲宇
发布2022-05-06 13:25:20
4330
发布2022-05-06 13:25:20
举报
文章被收录于专栏:菲宇菲宇

1、配置setting

代码语言:javascript
复制
INSTALLED_APPS = [
    ....
    'django.contrib.sites',
    'django.contrib.flatpages',
    ....
    ]
SITE_ID = 1
MIDDLEWARE = [
    ...
    'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
    ...
]

2、配置urls.py

代码语言:javascript
复制
urlpatterns = [
path('pages/', include('django.contrib.flatpages.urls')),
]

或者

from django.contrib.flatpages import views

# Your other patterns here
urlpatterns += [
path('<path:url>', views.flatpage),
]

再或者

from django.contrib.flatpages import views

urlpatterns += [
path('about-us/', views.flatpage, {'url': '/about-us/'}, name='about'),
path('license/', views.flatpage, {'url': '/license/'}, name='license'),
]

3、添加admin

自带admin后台

代码语言:javascript
复制
from django.contrib import admin
from django.contrib.flatpages.admin import FlatPageAdmin
from django.contrib.flatpages.models import FlatPage
from django.utils.translation import gettext_lazy as _

# Define a new FlatPageAdmin
class FlatPageAdmin(FlatPageAdmin):
    fieldsets = (
        (None, {'fields': ('url', 'title', 'content', 'sites')}),
        (_('Advanced options'), {
            'classes': ('collapse',),
            'fields': (
                'enable_comments',
                'registration_required',
                'template_name',
            ),
        }),
    )

# Re-register FlatPageAdmin
admin.site.unregister(FlatPage)
admin.site.register(FlatPage, FlatPageAdmin)

xadmin后台

代码语言:javascript
复制
from django.contrib.flatpages.admin import FlatPageAdmin
from django.contrib.flatpages.models import FlatPage
from django.utils.translation import gettext_lazy as _

class FlatPageAdmin(object):
    fieldsets = (
        (None, {'fields': ('url', 'title', 'content', 'sites')}),
                  (_('Advanced options'), {
                      'classes': ('collapse',),
                       'fields': ( 'enable_comments',
                                   'registration_required',
                                    'template_name',
                  ),
                  }),
    )

xadmin.site.register(FlatPage, FlatPageAdmin)

数据库迁移

代码语言:javascript
复制
python manage.py makemigrations
python manage.py migrate
python manage.py runserver 8000

4、测试成功

这里注意一点,setting里配置SITE_ID = 1

要一致

5、添加模板

添加页面flatpages/default.html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
<title>{{ flatpage.title }}</title>
</head>
<body>
{{ flatpage.content }}
</body>
</html>
或者
{% load flatpages %}
{% get_flatpages as flatpages %}
<ul>
{% for page in flatpages %}
<li><a href="{{ page.url }}">{{ page.title }}</a></li>
{% endfor %}
</ul>

其他

代码语言:javascript
复制
{% get_flatpages '/about/' as about_pages %}
{% get_flatpages about_prefix as about_pages %}
{% get_flatpages '/about/' for someuser as about_pages %}

配置访问成功。

6、自定义内容添加富文本编辑器

前提是django配置好ckeditor编辑,参考:Django添加ckeditor富文本编辑器

修改Lib/site-packages/django/contrib/flatpages/models.py下的

代码语言:javascript
复制
class FlatPage(models.Model):
    content = models.TextField(_('content'), blank=True)

修改成:

代码语言:javascript
复制
from ckeditor_uploader.fields import RichTextUploadingField


class FlatPage(models.Model):
    content = RichTextUploadingField(_('content'), blank=True)

参考文章https://docs.djangoproject.com/zh-hans/2.1/ref/contrib/flatpages/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、配置setting
  • 2、配置urls.py
  • 3、添加admin
    • 自带admin后台
      • xadmin后台
      • 4、测试成功
      • 5、添加模板
      • 6、自定义内容添加富文本编辑器
      相关产品与服务
      数据传输服务
      腾讯云数据传输服务(Data Transfer Service,DTS)可帮助用户在业务不停服的前提下轻松完成数据库迁移上云,利用实时同步通道轻松构建高可用的数据库多活架构,通过数据订阅来满足商业数据挖掘、业务异步解耦等场景需求。同时,DTS 还提供私有化独立输出版本 DTS-DBbridge,支持异构数据库和同构数据库之间迁移和同步,可以帮助企业实现完整数据库迁移(如 Oracle)。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档