2012-12-27 6 views
2

특정 필드가 3 개의 옵션이있는 라디오 선택기 인 양식이 있습니다. 이것이 Good, More-or-Less 및 Bad를 나타냅니다. Django Crispy Forms : 레이블 및 라디오 버튼을 이미지로 바꿉니다.

나는 다음과 같이 InlineRadio와 같은 줄에 넣어 관리 : 이제

self.helper.layout = Layout(InlineRadio(field_name)) 

를, 내가이 일에 필요

1) 각 옵션을 대체, 그는 라디오로 렌더링 버튼과 미리 정의 된 이미지가 포함 된 레이블입니다.

2) 라디오 버튼의 왼쪽과 오른쪽에 각각 하나씩 두 개의 이미지를 추가하십시오. 그래서 결국, 나는 5 개의 이미지를 연속적으로 가질 것입니다. 왼쪽에서 오른쪽으로 : Image of Smile (just the image) - Image of selector (Good) - Image of selector (More-or-Less)-Image of selector (Bad) - Image of Sad face (just the image)

은 장고 - 바삭로 달성 할 수 있습니까? 그렇지 않다면 어떻게해야합니까? 사전에

감사합니다.

답변

5

저는 싱싱한 형태의 개발자입니다. Field 레이아웃 개체를 사용하고 맞춤 템플릿을 사용하면됩니다. 당신이

Field('field_name', template="custom_inline_radio.html") 

다른 옵션은 자신의 레이아웃 객체가 InlineRadio 서브 클래스를 만드는 것입니다. 당신은 단지 것 그런 식으로해야 할 일 :

CustomInlineRadio('field_name') 

사실, 당신은 기본적으로 장고의 기본 위젯의 출력을 무시한다 무엇을 시도하고 당신이 당신의 장고 형태로 사용자 정의 위젯을 사용하는 경우 그것은 아마 더 의미가 있습니다 파삭 파삭 한 모양은 그것으로 중대한 놀 l 것이다. 나는 너에게 흥미가 있을지도 모른다 widgets and Django forms에 기사를 썼다.

+0

InlineRadio를 서브 클래 싱하여이를 해결했습니다. 이를 통해 템플릿을 사용자 정의 할뿐만 아니라 다른 컨텍스트 변수도 전달할 수있었습니다. 나는 그것을 여기에 올리려고했지만 당신은 나보다 먼저했다. 멋진 패키지를 가져 주셔서 감사합니다! – duduklein

+0

잘 했어 :) 감사합니다. – maraujop

관련 문제