zoukankan      html  css  js  c++  java
  • Django之模型注册

    接着上一篇:Django之创建项目

    目的:一个空项目创建好了,我们在models.py中新增3张表并在admin界面中显示,并能操作它们。

    示例models

    编辑models.py

    # -*- coding:utf-8 -*-
    from __future__ import unicode_literals
    
    from django.db import models
    
    # Create your models here.
    class Blog(models.Model):
        name = models.CharField(max_length=100,verbose_name=u"博文名称")
        tagline = models.TextField(verbose_name=u"标注")
    
        def __unicode__(self):
            return self.name
    
        class Meta:
            verbose_name = "博客主题"
            verbose_name_plural = "博客主题"
    
    class Author(models.Model):
        name = models.CharField(max_length=50,verbose_name=u"姓名")
        email = models.EmailField(verbose_name=u"邮箱")
    
        class Meta:
            verbose_name = "作者"
            verbose_name_plural = "作者"
    
    class Entry(models.Model):
        blog = models.ForeignKey(Blog)
        headling = models.CharField(max_length=255,verbose_name=u"标头")
        body_text = models.TextField(verbose_name=u"博体")
        pub_date = models.DateField(verbose_name=u"发布日期")
        mod_date = models.DateField(verbose_name=u"修改日期")
        authors = models.ManyToManyField(Author)
        n_comments = models.IntegerField(verbose_name=u"备注")
        n_pingbacks = models.IntegerField()
        rating = models.IntegerField()
    
        def __unicode__(self):
            return self.headling
    
        class Meta:
            verbose_name = "博文"
            verbose_name_plural = "博文"
    

    模型注册到admin

    from django.contrib import admin
    
    # Register your models here.
    from sqlOper import models
    
    class AuthorAdmin(admin.ModelAdmin):
        list_display = ('name','email')
    
    class BlogAdmin(admin.ModelAdmin):
        list_display = ('name','tagline')
    
    class EntryAdmin(admin.ModelAdmin):
        list_display = ('headling','pub_date','mod_date','n_comments')
    
    # admin.site.register([models.Blog,models.Author,models.Entry])
    admin.site.register(models.Blog,BlogAdmin)
    admin.site.register(models.Author,AuthorAdmin)
    admin.site.register(models.Entry,EntryAdmin)
    

    将表实例化到数据库

    >python manage.py makemigrations
    Migrations for 'sqlOper':
      sqlOpermigrations001_initial.py:
        - Create model Author
        - Create model Blog
        - Create model Entry
    
    >python manage.py migrate
    Operations to perform:
      Apply all migrations: admin, auth, contenttypes, sessions, sqlOper
    Running migrations:
      Applying sqlOper.0001_initial... OK
    

    创建超级用户

    D:pypythonspidersdjangodjangoStudy>python manage.py createsuperuser
    Username (leave blank to use 'administrator'): admin
    Email address: 2905@qq.com
    Password:
    Password (again):
    Superuser created successfully.
    

    登陆界面,输入超级用户名/密码

     现在可以对你的表进行操作了,添加一些作者、博客,内容信息吧。

    关于中文的问题

    1、django-admin界面显示中文

      修改settings.py

        LANGUAGE_CODE = 'zh_Hans'

        TIME_ZONE = 'Asia/Shanghai'

      最新的django版本(1.9)中只有zh_Hans,可以将其复制为zh_CN

    2、admin中新建表显示中文

      使用django中的原类Meta

      选项参考:http://kaozjlin.iteye.com/blog/1662617

  • 相关阅读:
    phonegap ios插件开发及无限后台运行解决
    iOS JSON解析
    ios上取得设备唯一标志的解决方案
    为iOS7重新设计你的App
    iOS多线程GCD 研究
    自定义用户环境
    启用SELinux保护
    shell编写一个批量添加用户脚本
    shell编写一个判断脚本
    shell使用特殊变量
  • 原文地址:https://www.cnblogs.com/kongzhagen/p/6587557.html
Copyright © 2011-2022 走看看