mezzanine的page表
- class Orderable(with_metaclass(OrderableBase, models.Model)):
- """
- Abstract model that provides a custom ordering integer field
- similar to using Meta's ``order_with_respect_to``, since to
- date (Django 1.2) this doesn't work with ``ForeignKey("self")``,
- or with Generic Relations. We may also want this feature for
- models that aren't ordered with respect to a particular field.
- """
- _order = OrderField(_("Order"), null=True)
- class Meta:
- abstract = True
- class OrderableBase(ModelBase):
- """
- Checks for ``order_with_respect_to`` on the model's inner ``Meta``
- class and if found, copies it to a custom attribute and deletes it
- since it will cause errors when used with ``ForeignKey("self")``.
- Also creates the ``ordering`` attribute on the ``Meta`` class if
- not yet provided.
- """
- class Displayable(Slugged, MetaData, TimeStamped):
- """
- Abstract model that provides features of a visible page on the
- website such as publishing fields. Basis of Mezzanine pages,
- blog posts, and Cartridge products.
- """
- status = models.IntegerField(_("Status"),
- choices=CONTENT_STATUS_CHOICES, default=CONTENT_STATUS_PUBLISHED,
- help_text=_("With Draft chosen, will only be shown for admin users "
- "on the site."))
- publish_date = models.DateTimeField(_("Published from"),
- help_text=_("With Published chosen, won't be shown until this time"),
- blank=True, null=True, db_index=True)
- expiry_date = models.DateTimeField(_("Expires on"),
- help_text=_("With Published chosen, won't be shown after this time"),
- blank=True, null=True)
- short_url = models.URLField(blank=True, null=True)
- in_sitemap = models.BooleanField(_("Show in sitemap"), default=True)
- objects = DisplayableManager()
- search_fields = {"keywords": 10, "title": 5}
- class Meta:
- abstract = True
- class Slugged(SiteRelated):
- """
- Abstract model that handles auto-generating slugs. Each slugged
- object is also affiliated with a specific site object.
- """
- title = models.CharField(_("Title"), max_length=500)
- slug = models.CharField(_("URL"), max_length=2000, blank=True, null=True,
- help_text=_("Leave blank to have the URL auto-generated from "
- "the title."))
- class Meta:
- abstract = True
- class SiteRelated(models.Model):
- """
- Abstract model for all things site-related. Adds a foreignkey to
- Django's ``Site`` model, and filters by site with all querysets.
- See ``mezzanine.utils.sites.current_site_id`` for implementation
- details.
- """
- objects = CurrentSiteManager()
- class Meta:
- abstract = True
- site = models.ForeignKey("sites.Site", editable=False)
- class MetaData(models.Model):
- """
- Abstract model that provides meta data for content.
- """
- _meta_title = models.CharField(_("Title"), null=True, blank=True,
- max_length=500,
- help_text=_("Optional title to be used in the HTML title tag. "
- "If left blank, the main title field will be used."))
- description = models.TextField(_("Description"), blank=True)
- gen_description = models.BooleanField(_("Generate description"),
- help_text=_("If checked, the description will be automatically "
- "generated from content. Uncheck if you want to manually "
- "set a custom description."), default=True)
- keywords = KeywordsField(verbose_name=_("Keywords"))
- class TimeStamped(models.Model):
- """
- Provides created and updated timestamps on models.
- """
- class Meta:
- abstract = True
- created = models.DateTimeField(null=True, editable=False)
- updated = models.DateTimeField(null=True, editable=False)
- lass Page(BasePage):
- """
- A page in the page tree. This is the base class that custom content types
- need to subclass.
- """
- parent = models.ForeignKey("Page", blank=True, null=True,
- related_name="children")
- in_menus = MenusField(_("Show in menus"), blank=True, null=True)
- titles = models.CharField(editable=False, max_length=1000, null=True)
- content_model = models.CharField(editable=False, max_length=50, null=True)
- login_required = models.BooleanField(_("Login required"), default=False,
- help_text=_("If checked, only logged in users can view this page"))
- class Meta:
- verbose_name = _("Page")
- verbose_name_plural = _("Pages")
- ordering = ("titles",)
- order_with_respect_to = "parent"
model的Meta abstract为True的,不会生成数据库表。
CREATE TABLE "pages_page" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "keywords_string" varchar(500) NOT NULL, "title" varchar(500) NOT NULL, "slug" varchar(2000) NULL, "_meta_title" varchar(500) NULL, "description" text NOT NULL, "gen_description" bool NOT NULL, "created" datetime NULL, "updated" datetime NULL, "status" integer NOT NULL, "expiry_date" datetime NULL, "short_url" varchar(200) NULL, "in_sitemap" bool NOT NULL, "_order" integer NULL, "in_menus" varchar(100) NULL, "titles" varchar(1000) NULL, "content_model" varchar(50) NULL, "login_required" bool NOT NULL, "parent_id" integer NULL REFERENCES "pages_page" ("id"), "site_id" integer NOT NULL REFERENCES "django_site" ("id"), "publish_date" datetime NULL);
CREATE INDEX "pages_page_9365d6e7" ON "pages_page" ("site_id");
CREATE INDEX "pages_page_6be37982" ON "pages_page" ("parent_id");
CREATE INDEX "pages_page_76776489" ON "pages_page" ("publish_date");
mezzanine的page表的更多相关文章
- django之ModelBase类及mezzanine的page link类
class ModelBase(type): """ Metaclass for all models. """ def __new__(c ...
- mysql 数据库封装类:返回索引、关联、字符串数组;分页查询封装类 :$page=new Page(表的总条数,每页的条数);$sql = "".$page->limit; echo $page->fpage();
<?php class czy { public $host="localhost"; //地址 public $uid="root"; //用户名 pu ...
- [MySQL Reference Manual]14 InnoDB存储引擎
14 InnoDB存储引擎 14 InnoDB存储引擎 14.1 InnoDB说明 14.1.1 InnoDB作为默认存储引擎 14.1.1.1 存储引擎的趋势 14.1.1.2 InnoDB变成默认 ...
- Selenium Web 自动化 - 项目实战(三)
Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解 3.1 解析新增页面目录 3.2 解析新增测试用例目录 3. ...
- 7. redis优化
一. redis使用上的优化 精简键名和键值 键名:尽量精简,但是也不能单纯为了节约空间而使用不易理解的键名. 键值:对于键值的数量固定的话可以使用0和1这样的数字来表示,(例如:male/femal ...
- mysql ERROR 1064 (42000): Erreur de syntaxe près de 'order)
mysql> INSERT INTO page (author_username, page_title, addtime, cat_id, page_content,author_uid,it ...
- Flexigrid的API
基本设定 width table的长度(default:auto) height table的宽度(default:200) striped 表格的线的表示(default:true) nov ...
- Redis学习——Linux环境下Redis的安装(一)
一.关于Redis Redis最为一款开源的key-value存储系统,自推出到现在一直受到编程人员的喜爱.它支持存储多种value类型,String .List .Set .Zset .Hash.这 ...
- [No0000137]字符编码详解
摘要 本文主要介绍了字符编码的基础知识,以及常见的字符编码类型,比如ASCII,Unicode,UTF-8,ISO 8859等,以及各种编码之间的关系,同时专门解释了中文字符相关的编码标准,包括GB2 ...
随机推荐
- java中对HashMap遍历的方式
第一种是利用HashMap的entrySet()方法: Map<String,String> map = new HashMap<String,String>(); Itera ...
- 【Guava 】Collections – Join and Split
Convert Collections to String Using Joiner Convert List into String Using Joiner @Test public void w ...
- C语言怎么简单测试为大小端模式
作者:Slience_J 原文地址:https://blog.csdn.net/slience_j/article/details/52048267 1.什么是大小端模式? 大端模式,是指数据的高字节 ...
- [UE4]地图缩放
一.创建一个设置UI比例尺的函数 二.通过Get Cached Geometry获得当前UI实际显示的尺寸,Get Desired Size获得当前UI原始尺寸,计算得到UI缩放比例尺 三.地图比例尺 ...
- laravel插入数据时报 502 Bad Gateway
前提:model中$timestamp = true; 但数据表中created_at 和updated_at 是默认为当前时间 造成冲突. 原因:用create方法时 created_at 和u ...
- php安装imagemagick扩展 常见问题与解决方案(win平台)
1.写在前面 1-1.ImageMagick介绍 ImageMagick是一套功能强大.稳定而且开源的工具集和开发包,可以用来读.写和处理超过89种基本格式的图片文件,包括流行的TIFF.JPEG.G ...
- Java给整数部分的字符串加上千分位分隔符
本来想网上找个例子,结果让人很失望,网上的大部分用的DecimalFormat .NumberFormat,我随便搞了一个长点的字符串,发现大部分都有小数进度问题. 而且网上的人,都不测试的,写的例子 ...
- MySQL MHA 搭建&测试(环境:CentOS7 + MySQL5.7.23)
MySQL MHA架构介绍: MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Face ...
- Python函数式编程-高阶函数、匿名函数、装饰器、偏函数
- Service 和 IntentService的区别;
Srevice不是在子线程,在Srevice中做耗时操作一样ANR,然后我们就会用到IntentService,IntentSrevice不但擅长做耗时操作,还有一个特点,用完即走: 在Srevice ...