2017-09-30 1 views
1

인라인 집합에 대한 사용자 정의 UI/UX를 수행합니다.Django - Inlineformset 삭제 버튼 수정

기본적으로 인라인 집합 위젯에는 삭제 버튼이 있습니다.

자바 스크립트를 사용하여 인라인 집합 동적에서 양식을 추가하고 제거 할 수 있습니다. 경우에 따라 삭제는 확인란 대신 버튼 일 뿐이고, 다른 경우 모달 창에있는 경우도 있습니다.

사용자가 삭제 버튼을 클릭하면 양식이 자바 스크립트로 삭제됩니다.

그래서 기본 위젯을 사용하지 않고 템플릿의 필드를 렌더링하려고 시도하지만 장고 마녀 필드를 제거하는 방법과 필드의 ID와 이름을 다시 조정해야하는지는 모르겠다. .

widgets.CheckboxInput.template_name = 'widgets/delete.html' 

내가 내 사용자 정의 위젯을 호스팅 내 {응용 프로그램} /widgets.py에 있음을 추가 :이 문제에 대한

답변

0

내 솔루션은 CheckboxInput 위젯 클래스의 TEMPLATE_NAME을 덮어했다. 내 앱 전체에서 같은 형식을 사용하고 있기 때문에 이것이 유일한 방법이라고 생각합니다.

{응용 프로그램} /templates/widgets/delete.html : 그것은inlineformset_factory 후 가장 좋은 방법은 없었을 것입니다 경우

<div class="checkbox checkbox-styled"> 
<label> 
    <input name={{ widget.name }} type="checkbox" value="true" {% if widget.attrs.checked == True %}checked{% endif %}> 
    <span>Delete</span> 
</label> 
</div> 

는 BaseFormSet 및 덮어 쓰기를 확장하는 새로운 클래스를 만드는 것이 었습니다 위젯은 에 있습니다. add_fields은 (는) this answer에 나와 있습니다.