zoukankan      html  css  js  c++  java
  • 8.Django模型类例子

    这里定义4个模型

    作者:一个作者有姓名

    作者详情:包括性别,email,出生日期,

    出版商:名称,地址,城市,省,国家,网站

    书籍:名称,日期

    分析:

    作者详情和作者一对一的关系

    一本书可以有多个作者,一个作者可以写多本书,作者和书籍多对多关系

    一本书只由一个出版商出版,一个出版商可以出版多本书,所以出版商和是一对多

    步骤:

    1.编写models.py文件:

    from django.db import models

    # Create your models here.
    class Publisher(models.Model):
    name = models.CharField(max_length=30, verbose_name="名称")
    address = models.CharField("地址", max_length=50)
    city = models.CharField("城市", max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()

    class Meta:
    verbose_name = '出版商'
    verbose_name_plural = verbose_name

    def __str__(self):
    return self.name

    class Author(models.Model):
    name = models.CharField(max_length=30)

    class AuthorDetail(models.Model):
    sex = models.BooleanField(max_length=1, choices=((0, '男'),(1, '女'),))
    email = models.EmailField()
    address = models.CharField(max_length=50)
    birthday = models.DateField()
    author = models.OneToOneField(Author)

    class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher)
    publication_date = models.DateField()

    2.生成数据库表  

      manage.py makemigrations  (创建脚本)

      manage.py migrate  (执行脚本)

      

    3.在hello_djangohelloadmin.py加入管理

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

    # Register your models here.
    admin.site.register(Author)
    admin.site.register(AuthorDetail)
    admin.site.register(Publisher)
    admin.site.register(Book)

    4.在localhost:8000/admin中查看

    这里表明中“出版商”为中文形式,是因为Meta起的作用,点add进去下一个页面

    这里的几个中文是因为verbose_name起的作用。如果在上个页面直接点击“出版商”到展示表内容界面

    这里能够显示中文是因为__str__()函数的作用

  • 相关阅读:
    JFreeChart API 说明(转)
    杭电1064
    杭电2734
    杭电1170
    杭电1197
    杭电2629
    杭电1062
    杭电2088
    杭电1205
    杭电1004
  • 原文地址:https://www.cnblogs.com/413xiaol/p/6501832.html
Copyright © 2011-2022 走看看