程序人生
django工作日志开发(二)
作者:邵波涛    时间:2016-08-24 浏览量:471

首先展示一下最终的简单效果,麻雀虽小,功能都有了。

上图为todo模块的简单显示,主要对日志进行显示,本次分三个视图分别显示,简单了做也可以javascript做鼠标划过切换显示,原理一样不做赘述。

上图是flatpages功能应用,excel文件直接存web页面录入,效果极好,如何使用该功能请查看本站django静态页面信息发布

话不多说,首先开始搞数据库,当然使用django的数据库迁移工具生成。

models.py文件如下:

# -*- coding: utf-8 -*-
from django.db import models
from django.contrib.auth.models import User
import django.utils.timezone as timezone

class TodoType(models.Model):
    todotype = models.CharField(max_length=50,verbose_name='分类')

    def __str__(self):
        return u'%s' % (self.todotype)

    class Meta:
        verbose_name = '分类'
        ordering = ['id']


class Todo(models.Model):
    BOOL_CHOICES = ((True, u'已完成'), (False, u'进行中'))
    user = models.ForeignKey(User,verbose_name='人员')
    ttype = models.ForeignKey(TodoType,verbose_name='分类')
    todo = models.CharField(max_length=50,verbose_name='事项')
    treply = models.CharField(max_length=250,verbose_name='内容')
    flag = models.BooleanField(choices=BOOL_CHOICES,verbose_name='状态')
    priority = models.CharField(max_length=2,verbose_name='优先级')
    pubtime = models.DateTimeField(auto_now_add=True,verbose_name='发布时间')
    finishtime = models.DateTimeField(default = timezone.now,verbose_name='完成时间')

    def __str__(self):
        return u'%d %s %s' % (self.id, self.todo, self.flag)

    class Meta:
        verbose_name = '任务'
        ordering = ['priority', 'pubtime']

然后在admin.py中注册这两个数据表

# -*-coding: utf-8 -*-
#!/usr/bin/env python

from django.contrib import admin
from todo.models import *


admin.site.register(TodoType)
admin.site.register(Todo)

然后可以生成数据表了。

python manage.py makemigrations
python manage.py migrate

其中verbose_name为各表和各字段在后台显示的名字,__str__(self)为后台表显示那些字段。

TODO下的两张表,由models.py定义的。

verbose_name定义的字段中文都显示在这里了,字段类型在models.py中也已定义,状态是bool值,单独定义的。

def __str__(self):
        return u'%d %s %s' % (self.id, self.todo, self.flag)


def __str__(self):
        return u'%s' % (self.todotype)

好了,数据库好了,后面就开始准备数据操作和呈现。

发言请留称呼=>
本文留言
共有 0 条留言
扫一扫,手机浏览网站
友情链接
申请链接