1:django models

3549 단어 django
django 모델 다시 보기
1:many-to-many의 추가 속성
일반적인 상황에서 many-to-many는 우리의 요구를 직접 만족시킬 수 있다. 이런 상황을 고려한다.
음악가와 악단은 many-to-many의 관계이지만, 우리는 그들의 다대다한 관계에 다른 속성을 추가하고 싶다. 예를 들어 한 음악가가 언제 악단에 가입할 것인지, 이럴 때 우리는 이렇게 할 수 있다.
through 매개 변수를 통해 두 종류의 매개체로 삼다
class Person(models.Model):

    name = models.CharField(max_length=128)



    def __unicode__(self):

        return self.name



class Group(models.Model):

    name = models.CharField(max_length=128)

    members = models.ManyToManyField(Person, through='Membership')



    def __unicode__(self):

        return self.name



class Membership(models.Model):

    person = models.ForeignKey(Person)

    group = models.ForeignKey(Group)

    date_joined = models.DateField()

    invite_reason = models.CharField(max_length=64)

2: 두 개의 자주 사용하는 모델 함수unicode__() 및 getabsolute_url()
 
class Person(models.Model):

    first_name = models.CharField(max_length=50)

    last_name = models.CharField(max_length=50)



    def __unicode__(self):

        return u'%s %s' % (self.first_name, self.last_name)

    def get_absolute_url(self):

        return "/people/%i/" % self.id

 
3: 에이전트
어떤 때는 하나의 클래스에 새로운 방법을 추가하거나 다른 데이터베이스 공간을 추가하고 싶지 않으면 에이전트를 사용할 수 있습니다.
from django.contrib.auth.models import User



class MyUser(User):

    class Meta:

        proxy = True



    def do_something(self):

        ...

 
MyUser는 User의 에이전트입니다. MyUser는 User의 데이터베이스 공간에 접근할 수 있고 추가 작업을 할 수 있습니다.
 
p

좋은 웹페이지 즐겨찾기