How to display switches without ul in django

forms.py

Date_Format = ( ('0', ' dd / mm / yyyy'), ('1', 'mm / dd / yyyy'), ) Time_Format = ( ('0', ' 12 hour AM / PM '), ('1', ' 24 hour '), ) class SettingsForm(forms.ModelForm): date_format = forms.ChoiceField(widget=forms.RadioSelect(), choices=Date_Format) time_format = forms.ChoiceField(widget=forms.RadioSelect(), choices=Time_Format) 

template.py

Update:

  {% for radio in SettingsForm.date_format %} {{ radio.choice_label }} <div class="select">{{ radio.tag }}</div> {% endfor %} 

The above form is a radio button in an unordered list, but I want it because of an unordered list. How can i do this?

+6
source share
2 answers

You can RadioSelect over RadioSelect in a template

 {% for choice in form.date_format %} {{ choice.choice_label }} <div class="select">{{ choice.tag }}</div> {# Or any other type you want. #} {% endfor %} 
+4
source

You can create your own renderer:

 from django import forms from django.forms.widgets import RadioFieldRenderer from django.shortcuts import render from django.utils.html import format_html_join from django.utils.encoding import force_text class RadioFieldWithoutULRenderer(RadioFieldRenderer): def render(self): return format_html_join( '\n', '<li>{0}</li>', [(force_text(w), ) for w in self], ) CHOICES = ( ('0', ' 12 hour AM / PM '), ('1', ' 24 hour '), ) class MyForm(forms.Form): somefield = forms.ChoiceField( widget=forms.RadioSelect(renderer=RadioFieldWithoutULRenderer), choices=CHOICES) def myview(request): return render(request, 'form.html', {'form': MyForm()}) 
+14
source

Source: https://habr.com/ru/post/944880/


All Articles