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':
  sqlOper\migrations\0001_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:\py\python\spiders\django\djangoStudy>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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM