Как я могу применить этот стиль в Django? (тип радио) - PullRequest
0 голосов
/ 03 апреля 2019

Как я могу применить этот стиль в Django?только один класс, который я могу применить в django, но двойной класс, я не могу это сделать.

Django 2.1, python 3.7

Я хочу использовать этот стиль CSS https://bootsnipp.com/snippets/Zk2Pz

<div class="funkyradio">
        <div class="funkyradio-default">
            <input type="radio" name="radio" id="radio1" />
            <label for="radio1">First Option default</label>
        </div>
        <div class="funkyradio-primary">
            <input type="radio" name="radio" id="radio2" checked/>
            <label for="radio2">Second Option primary</label>
        </div>
        <div class="funkyradio-success">
            <input type="radio" name="radio" id="radio3" />
            <label for="radio3">Third Option success</label>
        </div>
        <div class="funkyradio-danger">
            <input type="radio" name="radio" id="radio4" />
            <label for="radio4">Fourth Option danger</label>
        </div>
        <div class="funkyradio-warning">
            <input type="radio" name="radio" id="radio5" />
            <label for="radio5">Fifth Option warning</label>
        </div>
        <div class="funkyradio-info">
            <input type="radio" name="radio" id="radio6" />
            <label for="radio6">Sixth Option info</label>
        </div>
    </div>

Я хочу применить эту часть, и мой класс формы django

class DataUploadForm(forms.ModelForm):
    class Meta:
        model = DataUpload
        fields =('Type', 'Kind', 'description', 'document',)
        widgets = {
            'Type': forms.RadioSelect(attrs = {'class' : 'funkyradio funkyradio-default'}),
            'Kind': forms.RadioSelect(),
        }

, но это не работает

Я хочу радио-форму, использующую эту css

1 Ответ

0 голосов
/ 03 апреля 2019

В зависимости от того, что вы ищете, одним из решений является более детальное отображение формы в шаблоне.

Django docs укажите направления.

Ниже приведен один из способов достижения желаемого результата на основе документации:

В вашем forms.py вы можете сделать что-то вроде этого:

class TestForm(forms.Form):

    choices=(('Value1', 'Choice1'), 
             ('Value2', 'Choice2'), 
             ('Value3', 'Choice3')
             ..
            )

    options = forms.ChoiceField(widget=forms.RadioSelect, choices=choices)

Доступ к вашей форме в views.py :

def my_view(request):
    # your code here

    return render(request, 'your_app/template.html', form=TestForm())

Затем в вашем шаблоне template.html file:

<form action='/place_url_here', method='POST'>
    {% csrf_token %}
    <div class="funkyradio">
        {% for radio in form.options %}
            <div class="funky-{{ radio.choice_label }}">
                {{ radio.tag }}
                <label for="{{ radio.id_for_label }}">{{ radio.choice_label }}</label>
            </div>
        {% endfor %}
    </div>
</form>

Исходя из вышеизложенного, вы можете изменить стили для получения желаемых результатов.

Надеюсь, это поможет. Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...