Как предоставить класс для полей в шаблоне Django? - PullRequest
1 голос
/ 08 октября 2019

Я работал над проектом, в котором мне нужно было предоставить класс для поля в форме, которое является полем ввода, но я не знаю, как это сделать.

Мой шаблон:

{% extends 'diary/base.html' %}
{% block title %}Register{% endblock title %}
{% block content %}

{% load staticfiles %}
<link rel= "stylesheet" type= "text/css" href = "{% static 'users/register.css' %}">

    <div id="login-box">
        <div class="left-box">
                <h1>Register</h1>
                <form action="{% url 'register' %}" method="post">
                    {% csrf_token %}
                    {% for non_field_error in form.non_field_errors %}
                        <p>{{ non_field_error }}</p>
                    {% endfor %}
                    {% for field in form %}
                                {{ field }}
                        {% for error in field.errors %}
                            <p>{{ error }}</p>
                        {% endfor %}
                    {% endfor %}
                    <input type="submit" value="SIGN UP" name="signup-button" class="signup-btn">
                </form>
        </div>
        <div class="right-box">
        </div>
    </div>
{% endblock content %}

В этой конкретной части:

{% for field in form %}
                {{ field }}
        {% for error in field.errors %}

Я хочу предоставить класс {{field}}.

Я попробовал это:

{{ field(class="txtb") }}

Вот так я использую для обеспечения класса в Flask, но в Django это не сработало.

Любая помощь будетОценил!

1 Ответ

1 голос
/ 08 октября 2019

django-widget-tweaks

Я использую модуль django-widget-tweaks для установки атрибута HTML в шаблонах.

установка

  1. установить модуль с помощью pip install django-widget-tweaks
  2. добавить к INSTALLED_APPS в settings.py
INSTALLED_APPS = [
    ...
    'widget_tweaks',
    ...
]
{% load widget_tweaks %} в файле шаблонов

использование

в шаблонах код:

{% load widget_tweaks %}
...

{% for field in form %}
    {% render_field field class="txtb" %}
    ...

в HTML, выглядит так:

<input class="txtb" ... ...>

ссылка страница gjub django-widget-tweaks для получения дополнительной информации.


вручную

Подробное описание в здесь

forms.py:

class YourForm(forms.ModelForm):
    modelfield = forms.CharField(
        ...,
        widget=forms.TextInput(
            attrs={
                'class': 'txtb'
            }
        }
    )

    class Meta:
        model = ...
        fields = ...


И у меня много информации о django до simpleisbetterthancomplex.com
django-widget-tweaks также выучено здесь

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