Django基本模型表单未显示选项

2024-05-20 16:45:46 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Django tutorial,我构建了一个带有选项字段的基本模型表单:

  1. 一个字段(衬衫尺寸)-未显示选项
  2. 第二个字段-根本不显示

我找不到原因,无论我在哪里检查,似乎我在做正确的事情,但显然我没有

多谢各位

结果表enter image description here

视图.py

def person(request):
    if request.method == 'POST':
        form = forms.PersonForm(request.POST)
        if form.is_valid():
            return HttpResponseRedirect('/thanks/')

    else:
        form = forms.PersonForm()

    return render(request, 'development/form_template.html', {'form': form})

forms.py

class PersonForm(ModelForm):
    class Meta:
        model = models.Person
        fields = '__all__'

型号.py

class Person(models.Model):
    SHIRT_SIZES = (
        ('S', 'Small'),
        ('M', 'Medium'),
        ('L', 'Large'),
    )
    name = models.CharField(max_length=60, default='Anonymous', help_text='Type your name.')
    shirt_size = models.CharField(max_length=1, choices=SHIRT_SIZES)
    medal_type = models.TextChoices('MedalType', 'GOLD SILVER BRONZE')

form_template.html

{% extends 'development/development_template.html' %}

{% block content %}
<div class="container">
        <form action="/your-name/" method="post">
            {% csrf_token %}
            <table>
            {{ form.as_table }}
            </table>
            <input type="submit" value="Submit">
        </form>
</div>
{% endblock content %}

我正在使用的CSS文件

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
  <link href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.css" type="text/css" rel="stylesheet" media="screen,projection"/>
  <link type="text/css" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
  <link type="text/css" rel="stylesheet" href="{% static 'css/style.css' %}">

Tags: textpyformmodelsrequesttypelinkforms
1条回答
网友
1楼 · 发布于 2024-05-20 16:45:46

问题是select中100%支持Materialiecss设计-出于某种原因,它不再支持select

我使用bootstrap4执行form页面: (1) 安装:pip install django-bootstrap4 (2) 添加到INSTALLED_APPS = [..., 'bootstrap4',] (3) 编辑您的HTML表单

以下是html示例:

{% extends 'adolim/adolim_template.html' %}

{% block content %}
{% load bootstrap4 %}

{# Load CSS and JavaScript #}
{% bootstrap_css %}
{% bootstrap_javascript jquery='full' %}

{# Display django.contrib.messages as Bootstrap alerts #}
{% bootstrap_messages %}
<div class="container"  style="width:100%;" dir="rtl">
    <div class="col s3 right">
    </div>
    <div class="col s6 right" dir="rtl">
        <div class="container">
            <div class="row"><br></div>
                <h4 class="right">{{ page_title }}</h4>
            <div class="row"><br></div>
            <form dir="rtl" action="{% url 'adolim:add_order' %}" method="post" >
                {% csrf_token %}

                        {% bootstrap_form form %}

                <div class="col center">
                    {% buttons %}
                        <button class="btn-large waves-effect waves-light blue darken-1" type="submit" name="action">{{ page_title }} למערכת
                          <i class="material-icons right">send</i>
                        </button>
                     {% endbuttons %}
                </div>
            </form>
        </div>
    </div>
</div>

{% endblock content %}

相关问题 更多 >