Применить CSS к мастеру форм Django - PullRequest
0 голосов
/ 24 мая 2018

Я работаю с мастером форм, который в порядке, но сейчас это не очень красиво.

Мой Views.py основан на документации:

class ContactWizard(SessionWizardView):
form_list = [DurationForm, ContactForm2]
def done(self, form_list, **kwargs):
    return render(self.request, 'done.html', {
        'form_data': [form.cleaned_data for form in form_list],
    })

Мой готов.html содержит:

{% extends "base.html" %}
{% block content %}
<h1> Done! </h1>
{% endblock %}

Мои формы определены в forms.py:

from django import forms

class DurationForm(forms.Form):
     Duration_in_secounds = forms.IntegerField()

class FrequencyForm(forms.Form):
     Frequency_in_time_interval = forms.IntegerField()

Теперь мне интересно, как формы даже отображаются, потому что я никогда не загружаю их так, как использовал (например,с

{{form.as_p}}

Поскольку все, что я изменяю в моем done.html, не влияет на формы, созданные с помощью мастера, я понятия не имею, как добавить к ним CSS.

Может ли кто-нибудь из вас помочь мнепонять, что здесь происходит? (извините, если вопрос глупый / уже задан - здесь довольно поздно, и я ничего не нашел за последние два часа)

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Вы должны добавить статическую нагрузку в ваш шаблон (html):

{% load staticfiles %}
<link href="{% static 'myapp/css/my.css' %}" rel="stylesheet">

Здесь загружаются CSS, скрипты и т. Д.

0 голосов
/ 24 мая 2018

Я думаю, что это не имеет значения, это Мастер форм.Вы можете просто создать базовый класс, с которого вы можете расширять DurationForm и ContactForm2.Например:

def __init__(self, *args, **kwargs):
    super(BaseFormClass, self).__init__(*args, **kwargs)

    # specific field
    self.fields['name'].widget.attrs['class'] = 'my_class'

    # all fields on form
    for field in self.fields:
         self.fields[field].widget.attrs['class'] = 'my_class'

Не тестировалось.

...