溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

django ForeignKey的使用

發(fā)布時(shí)間:2020-06-14 20:55:08 來源:網(wǎng)絡(luò) 閱讀:15847 作者:zenge_blog 欄目:開發(fā)技術(shù)

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屬性,即“管理員,超級管理員,普通用戶”

django ForeignKey的使用

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字段,并且是自增的。

django ForeignKey的使用




向AI問一下細(xì)節(jié)

免責(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)容。

AI