2014-01-05 2 views
0

드롭 다운이 2 개 있습니다.Django - 다른 드롭 다운에 따라 드롭 다운 옵션 제한

첫 번째 드롭 다운에서 유형을 묻습니다.

다른 모델의 값을 보여주는 두 번째 드롭 다운이 있습니다.

내가 필요한 것은 첫 번째 드롭 다운이 type : qualif 인 경우 두 번째 드롭 다운의 pk = 1 만 보여 주기만하면됩니다.

name = models.CharField(max_length=40,verbose_name="nom") 
type = models.CharField(max_length=6,choices=TYPE_CHOICES) 
division = models.ForeignKey(Division,verbose_name="division") 

class TournamentForm(forms.ModelForm): 

def clean(self): 
    super(TournamentForm, self).clean() #if necessary 
    if 'division' in self._errors: 
     """  
      reset the value (something like this i 
      think to set the value b/c it doesnt get set 
      b/c the field fails validation initially) 
     """ 
     if self.data['type'] == 'qualif': 
      division = Division.objects.get(pk=1) 
      self.division = division 

     # remove the error 
     del self._errors['division'] 

    return self.cleaned_data 

    # Register your models here. 
    class TournamentAdmin(reversion.VersionAdmin): 
form = TournamentForm 
list_display = ('name', 'date', 'division', 'gender') 
ordering = ('date', 'name') 
list_filter = ['date', 'season', 'division', 'gender'] 

    admin.site.register(Tournament, TournamentAdmin) 
내가 청소를 사용하는 다른 스택 질문에서 읽을

...하지만 슬프게도이 작동하지 않습니다 ...

편집 :

내가 지금까지 무엇을 가지고 보고 후 @ Mardo의 링크에서 정적 파일을로드하려고했습니다. 여기

내 폴더 설정입니다 : 내 settings.py

STATIC_URL = '/ 정적 /'

에서

에 MyProject/정적/관리/JS/myfile.js

그리고이

그러나 찾을 수 없습니다 말 파일을 유지 ...

감사합니다, 아라

+0

아마도 클라이언트 쪽을 처리하는 것이 더 간단 할 것입니다. 일종의 매핑과 함께 가능한 모든 값을 웹 페이지로 보낸 다음 자바 스크립트 또는 jquery를 사용하여 첫 번째 드롭 다운이 변경되었을 때 두 번째 드롭 다운을 다시 채 웁니다. – jarmod

+1

나는 며칠 전에 비슷한 질문을 올렸다. 나는 'concetptual'종류의 대답, 이런 종류의 물건에 관한 장고의 가능성을 이해하는 가이드를 찾고 있었다. 응답은 아주 명확했다, 나는 너를 역시 도울 것이다. http://stackoverflow.com/questions/20753810/django-make-field-editable-depending-on-the-value-of-other-field –

+0

@Marcos Modenesi, Thanks! 애셋 파일을로드하는 중에 문제가 있습니다 ... 폴더 설정을 표시하는 첫 번째 게시물을 편집했습니다. –

답변

0

두 가지 형식을 만드십시오. 처음에는 첫 번째 드롭 다운 만 있고 두 번째는 비활성화되어 있습니다. 가치 커밋 양식을 선택하고 처음부터 전체 버전을 렌더링합니다.

관련 문제