2010-07-27 3 views
0

장고 양식에서 사용자 정의 '이름'속성을 설정하려고합니다.Django에서 RadioSelect의 사용자 정의 '이름'속성을 설정하십시오.

나는 이런 종류의 접근법 노력했습니다 :

class BaseQuestionForm(forms.Form): 
    question_id = forms.CharField(widget=forms.HiddenInput) 
    answer = forms.ChoiceField(choices = [ ... ], widget=forms.RadioSelect) 

을 다음과 대답의 'name'-ATTR 설정 :

form.fields['answer'].widget.name = 'new_name' 

하지만이 작동하지 않으며, 이름은 필드 이름에서와 같이 항상 '응답'으로 설정됩니다. 이것을 할 수있는 방법이 있습니까?

답변

1

첫 번째 시도 :

print form.fields['answer'].widget.name 

내가 (;-) 좋아, 나도 확신) 위젯에 이름이없는 생각합니다. (이 사전이 주문한) 템플릿에 단순히 {{ form }}를 사용하는 경우

form.fields['new_name'] = form.fields['answer'] 
del form.fields['answer'] 

이 있지만 필드의 바닥에 new_name 필드를 이동합니다 :에 당신이 원하는 것을 달성하기

, 당신은 할 것이다. Django는 키 이름을 사용하여 템플릿에 양식 필드 이름을 만듭니다.

+0

아주 잘 작동합니다. 그러나 거기에 장고에있는 데이터베이스 생성 된 양식을 만드는 다른 방법입니다 -이 때문에이 코드를 사용하고 있습니다. –

관련 문제