2012-02-03 3 views
0

나는 문서를 반복해서 읽었습니다. 그것은 다중 선택 도구를 사용하기 위해 django.forms를 가져와야한다고 말합니다. 나는 리그로서 모델을 정의하고 multiplechoicefield로 DAY_CHOICES을 선택하고 싶다면 혼란 스럽다. 어떻게해야 할까? Model 클래스 안에서 호출 폼을 정의 할 수 있습니까? 내 쿼리의 더 나은 이해를 위해MultipleChoiceField django에서 사용하기

, 여기 내 models.py

class League(models.Model): 
    DAY_CHOICES = (
     ('MO', 'Monday'), 
     ('TU', 'Tueday'), 
     ('WE', 'Wednesday'), 
     ('TH', 'Thursday'), 
     ('FR', 'Friday'), 
     ('SA', 'Saturday'), 
     ('SU', 'Sunday'), 
    ) 

    SEASON_STATUS = (
     ('In Progress', 'In Progress'), 
     ('Concluded', 'Concluded') 
    ) 

    LEAGUE_TYPE = (
     ('Home', 'Home League'), 
     ('Away', 'Home and Away League'), 
     ('Cup', 'Cup'), 
     ('CupAway', 'Cup, Home and Away'), 
    ) 

    name = models.CharField(max_length=30) 
    league_type = models.CharField(max_length=30, choices=LEAGUE_TYPE, default='Away') 
    play_days = models.CharField(max_length=28, choices=DAY_CHOICES, default='SU') 
    #defining rules for winning and loosing 
    win = models.IntegerField(max_length=2) 
    loss = models.IntegerField(max_length=2) 
    draw = models.IntegerField(max_length=2) 
    status = models.CharField(max_length=15, choices=SEASON_STATUS, default='In Progress') 

// 마우스

답변

1

당신이 정말로 장고에 혼란스러워하지 않으려는 세 가지 다른 일이 있습니다

  • 모델 필드
  • 양식 필드
  • 양식 위젯

모델 필드 컨트롤 데이터베이스에 들어가는 항목, 자동 양식 작성 기능을 사용할 때 모델 필드 유형은 특정 양식 필드를 포함하는 양식을 제공합니다.

양식 위젯은 사용자가 양식에서 상호 작용하는 HTML을 제어합니다. 양식 필드 유형에 따라 작동 할 수있는 둘 이상의 위젯이있을 수 있습니다 (예 : & 날짜 위젯 관리인이 사용자 작성 양식에있는 것보다 일반적으로 사용합니다).

일단이 구분을 마음에두면 문서의 상당 부분이 훨씬 의미가 있어야합니다.

+0

_ 모델 필드는 데이터베이스에 들어갈 내용을 제어하며, 자동 양식 작성 기능을 사용할 때 모델 필드 유형은 특정 양식을 포함하는 양식을 제공합니다. field_ debuggerpk

+0

Django에 모델에서 폼을 요청하면 모델 필드를 기반으로 사용할 폼 필드를 선택합니다. 이것은 관리자가 작동하는 방식이기도합니다. 따라서 모델에 입력하는 선택 사항 만 데이터베이스에 들어갈 수 있습니다.Django는 동일한 선택 항목을 사용하여 양식을 작성하지만, 이번에는 모델 필드가 아닌 양식 필드에 작성합니다. – KayEss

0

당신은 당신의 models.py 파일 내에서 형태를 구성하지 않은 것입니다. models.py 파일이 정상적으로 보입니다. 양식과 그 양식 내의 개별 필드를 나타내는 데 사용되는 위젯은 일반적으로 forms.py 파일에 정의되어 있습니다. creating forms from models의 설명서와 customizing the display of models within the Admin 인터페이스의 설명서를 살펴보십시오 (해당 인터페이스를 통해이 양식을 사용할 수 있다고 가정).

+0

정확하게 관리자가 여러 가지 선택 사항을 선택할 수 있기를 바랍니다. – debuggerpk

0

일반적으로 charFieldchoices단일 선택 사항을 저장하는 데 사용됩니다.

일요일과 월요일을 선택한다고 가정 해보십시오. play_days에 무엇을 저장 하시겠습니까? 일종의 직렬화입니다. "SU, MO"? 그런 다음 장고에게 데이터 직렬화 방법을 알려줘야합니다. 또한 의 잘못된 아이디어 일 가능성이 높습니다. 데이터를 쿼리하기가 어려울 수 있습니다. 대신

은 일 개최 새로운 클래스를 만들고, 그리고 many to many fieldplay_days을 변경하는 것이 좋습니다. 보너스로, m2m 필드에는 기본적으로 복수 선택 위젯이 있습니다.

+0

나는 [dateutil] (http://labix.org/python-dateutil)의 rrule을 사용하여 이전에 작성한 사용자 정의 함수를 사용하여 조명기를 계산합니다. 그래서 나는 SU, MO가 장고 DB에서 쉼표로 분리 된 값이되기를 바랄 것이다. 그것은 내 인생을 훨씬 더 쉽게 장기적으로 만들 것입니다 :) – debuggerpk

관련 문제