2012-11-21 1 views
1

Action에서 상속받은 InheritAction 클래스가 있습니다. 이제는 PositiveIntegerField에 대한 다양한 선택을 제공하고 싶습니다. 우리가 장고 클래스 속성을 무시할 수 없다는 것을 압니다. 그러나 이것을하는 방법이 있습니다. 나는이 일을 시도 사전Django : 상속 클래스에 PositiveIntegerField에 대한 사용자 정의 선택 제공

 ACTION_TYPE = (
      (1, 'Approve'), 
      (2, 'Reject'), 
      (3, 'More Information Required'), 
      (4, 'Status Update') 
      ) 
    class Action(models.Model): 
     type = models.PositiveIntegerField(choices=ACTION_TYPE) 

    INHERIT_ACTION_TYPE = (
      (1, 'Approve'), 
      (2, 'Reject'), 
      (3, 'More Information Required'), 
      (4, 'Status Update') 
      ) 
    class InheritAction(Action): 
     pass 

에 감사 ...

InheritAction._meta.get_field('type).choices = INHERIT_ACTION_TYPE 

그러나 오류를 제공합니다 ...

AttributeError: can't set attribute 

답변

0

당신은 형태의 선택을 무시할 수 있습니다.

class InheritActionForm(forms.ModelForm): 
    type = forms.ChoiceField(choices = INHERIT_ACTION_TYPE) 

    class Meta: 
     model = InheritAction 

당신 수 use that form in the admin 당신은 지금까지 내가 알고있는 선택 옵션은 데이터베이스에 어떤 제약 조건을 추가하지 않습니다

, 그것은 자동 생성 된 형태의 단지

필요합니다.

관련 문제