17 Mar 2016
python manage.py startapp routine
routine/model.py内容(我们创建了task、create_time、update_time三个基本字段,其他会在下面详细讲述)
# coding:utf-8 from __future__ import unicode_literals from django.db import models from crum import get_current_user class RoutineTask(models.Model): STATUS_CHOICES = ( ('f', '已完成'), ('n', '未完成'), ('p', '已发布'), ) task = models.CharField(max_length=40, verbose_name="任务") create_time = models.DateTimeField(auto_now=False, auto_now_add=True) update_time = models.DateTimeField(auto_now=True, auto_now_add=False) create_by = models.ForeignKey('auth.User', blank=True, null=True, default=None, related_name='+', verbose_name="创建人") assigned_to = models.ForeignKey('auth.User', blank=True, null=True, default=None, related_name='+', verbose_name="执行人") status = models.CharField(max_length=1, choices=STATUS_CHOICES, default="p") class Meta: verbose_name_plural = '项目' def save(self, *args, **kwargs): self.create_by = get_current_user() super(RoutineTask, self).save(*args, **kwargs) def __str__(self): return self.task def __unicode__(self): return self.task # 这里的__unicode__或__str__会显示在admin的页面上,如果没有admin中的list_display的话
添加两个ForeignKey,related_name是用来防止两个”auth.User”外键重复的错误
create_by = models.ForeignKey('auth.User', blank=True, null=True, default=None, related_name='+', verbose_name="创建人") assigned_to = models.ForeignKey('auth.User', blank=True, null=True, default=None, related_name='+', verbose_name="执行人")
def save(self, *args, **kwargs): self.create_by = get_current_user() super(RoutineTask, self).save(*args, **kwargs)
STATUS_CHOICES = ( ('f', '已完成'), ('n', '未完成'), ('p', '已发布'), ) # ...... status = models.CharField(max_length=1, choices=STATUS_CHOICES, default="p")