วันอังคารที่ 4 พฤษภาคม พ.ศ. 2553

Extend User Model in Django

ref: http://docs.djangoproject.com/en/dev/topics/auth/
ในระบบทั่ว ๆ ไปก็ต้องการ Login เพื่อตรวจสอบการใช้งานของผู้ใช้งาน และด้วย Django นั่นมีระบบจัดการ User ให้แล้ว ดังนั้นจะเป็นการดีมากหากเรานำมาใช้งานต่อได้

ใน Django นั้นมีระบบที่เรียกว่า User authentication มาให้ดวย โดยระบบดังกล่าวประกอบด้วย

  1. Users
  2. Permission
  3. Groups
  4. Messages
ใน Class models.User นั่นประกอบด้วยข้อมูลไว้สำหรับทำการ Login แต่ว่าด้วยระบบส่วนใหญ่ที่ผมทำนั้นจะประกอบด้วย Organization, Company, Department, Team ... ดังนั้นก็เลยต้องทำการ extend models นั่นเอง

ผมก็สร้าง app มาใหม่ชื่อว่า user แล้วทำการสร้าง model ดังนี้

from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
code = models.CharField(max_length=100, null=True)
prefix = models.ForeignKey(Prefix, null=True)
email2 = models.EmailField(null=True)
gender = models.ForeignKey(Gender, null=True)
home_phone = models.CharField(max_length=100, null=True, db_index=True)
mobile_phone = models.CharField(max_length=100, null=True, db_index=True)
work_phone = models.CharField(max_length=100, null=True, db_index=True)
pic_url = models.ImageField(upload_to='emp', max_length=200, null=True)
signature = models.TextField(null=True)

def __unicode__(self):
return self.user.get_full_name()


เท่านี้เราก็จะได้การจัดการ User แล้ว

ไม่มีความคิดเห็น:

แสดงความคิดเห็น