国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django中Model的使用方法教程

2020-02-22 23:22:34
字體:
供稿:網(wǎng)友

前言

本文主要給大家介紹了關(guān)于Django中Model使用的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。

創(chuàng)建模型

使用Django的模型主要注意兩個(gè)方面:字段的類型和方法的重寫。這里用一個(gè)例子來說明,其中包含了常用的字段類型和如何重寫方法。

from django.db import modelsclass School(models.Model): passclass Message(models.Model): passclass Teacher(models.Model): pass class Student(models.Model): GENDER_CHOICES = (  ('male', "男"),  ('female', "女"),  ('secret', "保密") ) name = models.CharField(max_length=40, blank=True, verbose_name="姓名") gender = models.CharField(max_length=6, choices=GENDER_CHOICES, default="secret", verbose_name="性別") age = models.IntegerField(default=0, verbose_name="年齡") rank = models.PositiveIntegerField(default=1, verbose_name="排名", unique=True) discount = models.DecimalField(max_digits=3, decimal_places=2, verbose_name="折扣", default=1.0) school = models.ForeignKey(to=School, verbose_name="學(xué)校", on_delete=models.CASCADE) message = models.OneToOneField(to=Message, verbose_name="信息", on_delete=models.CASCADE) teacher = models.ManyToManyField(verbose_name="老師", to=Teacher, blank=True) introduce = models.TextField(blank=True, verbose_name="介紹") grade = models.FloatField(default=0.0, verbose_name="成績") url = models.URLField(verbose_name="個(gè)人主頁", max_length=100) email = models.EmailField(verbose_name="郵箱") image = models.ImageField(upload_to='img/%Y/%m/%d/', verbose_name='上傳圖片', null=True) file = models.FileField(upload_to="file/%Y/%m/%d/", verbose_name="上傳文件", blank=True) is_deleted = models.BooleanField(verbose_name="已刪除", default=False, blank=True) time_added = models.DateTimeField(verbose_name="添加時(shí)間", auto_now_add=True, blank=True) def delete(self, using=None, keep_parents=False):  self.is_deleted = True  # some actions  self.save() def save(self, force_insert=False, force_update=False, using=None,    update_fields=None):  # some actions  self.name = self.name.capitalize() # 首字母大寫  return super().save(force_insert=force_insert, force_update=force_update, using=using,       update_fields=update_fields) def __repr__(self):  return "UserProfile:{}".format(self.name) def __str__(self):  return self.name class Meta:  ordering = ['-time_added']  verbose_name = "用戶信息"  verbose_name_plural = verbose_name  db_table = "student_info"

字段類型

這里對常見字段中值得注意的地方作一下說明。

CharField

字符串類型值得注意的是當(dāng)該字段只能在是某些指定的值時(shí),要使用choices參數(shù)來指向預(yù)先設(shè)定的值。

IntergerField & PositiveIntegerField

整數(shù)類型和正整數(shù)類型。

DecimalField

十進(jìn)制浮點(diǎn)數(shù),其中,參數(shù)max_digits代表數(shù)字有多少位,decimal_places代表小數(shù)部分有多少位。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 涞水县| 陆河县| 奉化市| 泌阳县| 乃东县| 安国市| 广州市| 锦屏县| 四川省| 牟定县| 吉首市| 文水县| 博湖县| 正宁县| 称多县| 油尖旺区| 泽库县| 罗田县| 黔江区| 大安市| 阳高县| 句容市| 朝阳市| 桐乡市| 逊克县| 天门市| 四平市| 法库县| 贡觉县| 弥渡县| 桂东县| 高安市| 凤翔县| 平湖市| 台湾省| 涿州市| 鸡泽县| 桦川县| 房产| 鹤岗市| 克山县|