2010-12-18 4 views
10

일부 감사 필드가 포함 된 장고 모델을 디자인하려고했습니다. 작성자, 작성자,에 의해 업데이트되고에 의해 업데이트 됨. 이 4 개의 열은 다른 응용 프로그램의 모든 모델에서 반복됩니다.django, related_name은 무엇입니까? 프로젝트간에 공유 열을 어떻게 만듭니 까?

첫 번째 질문은 이러한 열을 넣을 수있는 방법이 있으며 필요할 때마다이를 내 수업에 포함시킬 수 있습니까?

내 두 번째 질문은 아래 코드에서 related_name 속성의 요점은 무엇입니까? 코드가 없으면 코드는 오류를 반환하고 값은 전체 앱에서 고유해야합니다. 항상 고유 한 방법을 제공합니까?

class Poll(models.Model): 
    question=models.CharField(max_length=300) 
    start_poll_at=models.DateTimeField(null=True) 
    end_poll_at=models.DateTimeField(null=True) 
    is_active=models.BooleanField(default=True) 
    created_at=models.DateField("Created at") 
    created_by=models.ForeignKey(User, db_column="created_by", related_name="poll_user_created_by") 
    updated_at=models.DateTimeField("Updated at") 
    updated_by=models.ForeignKey(User, db_column="updated_by", null=True, related_name="poll_user_updated_by") 


class Choice(models.Model): 
    choice=models.CharField(max_length=200) 
    created_at=models.DateField("Created at") 
    created_by=models.ForeignKey(User, db_column="created_by", related_name="poll_user_created_by") 
    updated_at=models.DateTimeField("Updated at") 
    updated_by=models.ForeignKey(User, db_column="updated_by", null=True, related_name="poll_user_updated_by") 

감사

답변

7

이 시도 :

class AbstractClass(models.Model): 
    created_at=models.DateField("Created at") 
    created_by=models.ForeignKey(User, db_column="created_by", related_name="poll_user_created_by") 
    updated_at=models.DateTimeField("Updated at") 
    updated_by=models.ForeignKey(User, db_column="updated_by", null=True, related_name="poll_user_updated_by") 
    class Meta: 
     abstract = True 

을 그리고 다른 모델에 기본으로 사용 : http://docs.djangoproject.com/en/dev/topics/db/models/#abstract-base-classes

이 이것에 대해 장고 문서는

class Poll(AbstractClass): 
    question=models.CharField(max_length=300) 
    start_poll_at=models.DateTimeField(null=True) 
    end_poll_at=models.DateTimeField(null=True) 
    is_active=models.BooleanField(default=True) 

+1

ted names : http://docs.djangoproject.com/en/dev/topics/db/models/#be-careful-with-related-name – crodjer

관련 문제