2013-08-06 22:24:06|

 
        1.创建模型

         (1) "mysite\blog\models.py"文件中的内容:

# -*- coding:utf-8 -*-
from django.db import models
 
class Group(models.Model):
    """日志的分类"""
    group = models.CharField(max_length=30)
    def __unicode__(self):  # __unicode__() 方法告诉Python如何将对象以unicode的方式显示出来
        return self.group
 
class Article(models.Model):
    """日志"""
    title = models.CharField(max_length=150)
    body = models.TextField()
    group = models.ForeignKey(Group)
    timestamp = models.DateTimeField(auto_now_add=True)  # 创建文章的时间 
    last_time = models.DateTimeField(auto_now=True)  # 最后一次修改的时间 
    def __unicode__(self):  #  __unicode__() 方法告诉Python如何将对象以unicode的方式显示出来
        return self.title
 
    class Meta:  # 使用Meta类,设置一些与特定模型相关的选项
        ordering = ['-timestamp']
 
    def get_body_part(self):
        return self.body[:80]  # 输出日志内容的前面80个字符
 

  2. 创建数据库表

(1) 验证模型有效性:  python manage.py validate

 

(2) 生成 CREATE TABLE 语句:python manage.py sqlall blog

(3) 提交SQL语句至数据库:python manage.py syncdb

 

3.将Models加入到Admin 管理中

(1) 创建文件"admin.py",文件路径为"mysite\blog\admin.py",内容:

from django.contrib import admin

from blog.models import Article, Group

admin.site.register(Article)

admin.site.register(Group)

(2) 打开http://localhost:8000/admin,看到可以管理blog应用中的内容:

 
      (3) 通过管理页面添加日志
 
 

4.自定义ModelAdmi类

"blog\admin.py"文件中:

class ArticleAdmin(admin.ModelAdmin):

    list_display = ('title', 'body', 'timestamp')  # 允许管理员指定列表中的字段

    search_fields = ('title', 'body')  # 添加一个快速查询栏

    list_filter = ('timestamp',)  # 添加过滤器

    date_hierarchy = 'timestamp' 

    ordering = ('-timestamp',)  # 改变默认的排序方式,按timestamp降序排列

    fields = ('title', 'body', 'group')  # 自定义编辑表单,排除一些不想被其他人编辑的fields 

admin.site.register(Article, ArticleAdmin)

最新文章

  1. ReactiveCocoa代码实践之-更多思考
  2. (5) 深入理解Java Class文件格式(四)
  3. [经验交流] Apache Mesos Docker集群初探
  4. paramiko堡垒机、线程及锁
  5. .NET 里操作Excel 出现有些列的数据取不到的问题
  6. PHP 关于回调的用法
  7. 怒刷DP之 HDU 1069
  8. 绘制一个绿色矩形平面((50, 50)->(350, 350))
  9. linux系统查询命令
  10. ReactiveSwift源码解析(八) SignalProducer的代码的基本实现
  11. c# Char && string
  12. 2018山东省ACM省赛G题-Game
  13. 异步渲染页面怎么点击checkbox获取value值
  14. 51nod1268 和为K的组合(DFS)
  15. shell中使用类似Python的参数处理
  16. CodeCraft-19 and Codeforces Round #537 (Div. 2) 题解
  17. Property referenced in indexed property path is neither an array nor a List nor a Map
  18. css中background-size的属性值
  19. CSS个人笔记
  20. C++作业 一

热门文章

  1. 帮助新手理解equals和hashCode
  2. Spring注解驱动开发之AOP
  3. AJPFX关于abstract的总结
  4. Android 7.0 因为file://引起的FileUriExposedException异常
  5. Android基础TOP3:线性布局的特点,常用属性,及权重值
  6. 网站推广--Html关键词代码解说
  7. vba,excel,网址提取名字与链接url
  8. 怎样在nexus 中 搜索到远程maven仓库中的jar 文件
  9. 卸载钩子 UnhookWindowsHookEx
  10. java.lang.NoClassDefFoundError: org.springframework.beans.FatalBeanException