您好,登錄后才能下訂單哦!
ForeignKey,ManyToManyField與OneToOneField分別在Model中定義多對一,多對多,一對一關(guān)系。
ForeignKey
加入數(shù)據(jù)庫中要建立兩張表,userlist和UserTpye。
Userlist表的字段有
['username','password','Gender','Age','memo','TypeID']
UserType表的字段有
['name]
這里的name值只有三個(gè),管理員,超級管理員,普通用戶。
現(xiàn)在希望Userlist和UserType兩張表關(guān)聯(lián)起來,即Userlist中有一個(gè)TypeID的字段,其值為UserType表的限定的三個(gè)值。也就是說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信息,是為了在后臺(tái)管理界面中,在編輯Userlist表時(shí),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字段,默認(rèn)每張表都有id字段,并且是自增的。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。