django创建model

时间:2021-07-25 07:49:41

1.model实例

#!/usr/bin/python
# coding:utf-8
from __future__ import unicode_literals

from django.db import models
import sys

reload(sys)
sys.setdefaultencoding('utf-8')

__author__ = 'klx'

# Create your models here.
class ImageQuerySet(models.QuerySet):
    """
    model的queryset类,通过Image.object.image_count()调用类方法image_count()
    """
    def image_count(self):
        return self.count()

class Image(models.Model):
    img_name = models.CharField(u"二维码名称", max_length=100, null=True, blank=True)
    img_url = models.CharField(u"二维码路径", max_length=100, null=True, blank=True)

    object = ImageQuerySet.as_manager()

    class Meta:
        # db_table 表名称 若不提供该参数,
        # Django 会使用 app_label + '_' + module_name 作为表的名字
        db_table = 'qr_code_image'
        # 是该对象的一个可读性更好的唯一名字
        verbose_name = u"二维码"
        # 对象名字的复数
        verbose_name_plural = u'二维码'
        # 应用的名称
        app_label = u'qr_code'
        # 默认排序字段及排序方式,-号表示降序排序(递减),字符串 "?" 表示随机排序
        # 用于得到一个对象列表的任何场合
        ordering = ['pk']

    def __unicode__(self):
        return self.img_name

    def all_msg(self):
        """
        Image对象方法,实例化Image为img_obj,通过img_obj.all_msg()调用
        :return:
        """
        return self.img_name + " " + self.img_url

 2.注意事项

1.项目建立时,需要创建django中的默认表:

django创建model

需要先运行python manage.py migrate创建默认表 ,再创建自定义表python manage.py makemigrations [appname] -> python manage.py migrate [appname]