ForeignKey,ManyToManyField與OneToOneField分別在Model中定義多對一,多對多,一對一關系。
ForeignKey
加入數據庫中要建立兩張表,userlist和UserTpye。
Userlist表的字段有
['username','password','Gender','Age','memo','TypeID']
UserType表的字段有
['name]
這里的name值只有三個,管理員,超級管理員,普通用戶。
現在希望Userlist和UserType兩張表關聯起來,即Userlist中有一個TypeID的字段,其值為UserType表的限定的三個值。也就是說Userlist中TypeID只能為管理員、超級管理員或者普通用戶
#coding:utf8 from django.db import models class Userlist(models.Model): username = models.CharField(max_length=50) password = models.CharField(max_length=50) male = { ('man', u'男'), ('woman', u'女'), } Gender = models.CharField(max_length=50,blank=True, choices=male) Age = models.IntegerField(default = '20') memo = models.TextField(default = 'xxx') #CreateDate = models.DateTimeField(default='2012-1-2 12:00') TypeID = models.ForeignKey('UserType') class UserType(models.Model): name = models.CharField(max_length=50) def __unicode__(self): return self.name
這里UserType 返回的是name信息,是為了在后臺管理界面中,在編輯Userlist表時,UserType字段顯示UserType對象的name屬性,即“管理員,超級管理員,普通用戶”
admin.py代碼:
from django.contrib import admin from learn.models import * # Register your models here. class UserlistAdmin(admin.ModelAdmin): list_display = ['username','password','Gender','Age','memo','TypeID'] admin.site.register(Userlist,UserlistAdmin) class UserTypeAdmin(admin.ModelAdmin): list_display = ['name','id'] admin.site.register(UserType,UserTypeAdmin)
這里UserType表顯示了id字段,默認每張表都有id字段,并且是自增的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。