Это мой первый проект с использованием Django. Я создаю форму следующим образом, и, как вы можете видеть на скриншоте ниже, форма просто сужается. Я бы хотел, чтобы поля ввода проходили по всему экрану, что невозможно, когда форма такая узкая. Как я могу увеличить ширину формы.

from django import forms
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit, Layout, Row, Field
from ..models import EvilSnippet

class AddSnippet(forms.Form):

class Meta:
    model = EvilSnippet

code_language = forms.ChoiceField(
    label = "Select Language",
    choices = (("Java", "Java"), ("Python", "Python"), ("C#", "C#")),
    required = True,
)

severity = forms.ChoiceField(
    label = "Severity",
    choices = (("HIGH", "HIGH"), ("MEDIUM", "MEDIUM"), ("LOW", "LOW")),
    required = True,
)

description = forms.CharField(
    label = "Description",
    required = False,
    #widget=forms.TextInput(attrs={'size': '20'})
)

code = forms.CharField(
    label = "Code",
    required = False,
    widget=forms.Textarea()
)

def __init__(self, *args, **kwargs):
    super(AddSnippet, self).__init__(*args, **kwargs)
    self.helper = FormHelper()
    self.helper.form_id = 'id-addSnippet'
    self.helper.form_class = 'uniForms'
    self.helper.form_method = 'post'
    self.helper.form_action = 'submit_snippet'

    self.helper.layout = Layout(
        Row(
            Field('code_language', wrapper_class='col-md-6'),
        ),
        Row(
            Field('severity', wrapper_class='col-md-6'),
        ),
        Row(
            Field('description', wrapper_class='col-md-6'),
        ),
        Row(
            Field('code', wrapper_class='col-md-6'),
        )
    )

    self.helper.add_input(Submit('submit', 'Submit'))

И

{% extends 'base.html' %}
{% load crispy_forms_tags %}


{% block content %}
<!-- <form action = '' method="post"> -->
<!-- Very Important csrf Token -->
 {% csrf_token %}
 <!-- <table> -->
     {% crispy form %}
 <!-- </table> -->
<!-- </form> -->
{% endblock %}

enter image description here

0
pinas 29 Фев 2020 в 02:56

2 ответа

Для управления отображением веб-страницы вам необходимо использовать CSS. В вашем случае вы захотите использовать свойство width. Нечто подобное должно работать для вас:

form#id-addSnippet {
    width: 100%;
}

Это установит ширину формы с идентификатором id-addSnippet равной 100% содержащего ее блока.

См. этот ответ для получения дополнительной информации о том, что width: 100% означает.

0
kimbo 29 Фев 2020 в 00:26

Будет ли это wrapper_class для ваших элементов ввода? У вас есть класс загрузочного ремешка col-md-6, который занимает половину доступного пространства, может быть, попробуйте col-md-12 ???

0
BerryCoder 29 Фев 2020 в 00:10