首页 > 解决方案 > 我的 django 表单未显示在 html 页面上

问题描述

在此处输入图像描述我正在尝试创建一个 addform 来获取用户的输入并将其添加到我的模型中,但是,表单没有显示在页面上,有人可以告诉我我做错了什么吗?下面是 forms.py、views.py 和 add.html 的代码:

表格.py

class AddForm(forms.Form):
    vehicle = forms.CharField(max_length=10)
    carrier = forms.FloatField()
    location = forms.ChoiceField(choices=[(1, 'Mathura Installation')])
    customer_code = forms.FloatField()
    zone = forms.ChoiceField(choices=[('NW', 'North West'),
                                      ('NCR', 'North Central'),
                                      ('SCR', 'South Central'),
                                      ('S', 'South'), ('N', 'North'),
                                      ('W', 'West'), ('E', 'East')
                                      ])
    quantity = forms.FloatField()
    load = forms.FloatField()
    rtkm = forms.FloatField(label='RTKM')
    rate = forms.ChoiceField(label='Rate ', widget=forms.RadioSelect, choices=[('avg', 'Average Rate'),
                                                                         ('user', 'User Rate')])

视图.py

def add(request):
    addform = forms.AddForm()
    dict = {'addform': addform}
    return render(request, 'add.html', dict)

网址.py

from django.contrib import admin
from django.urls import path
from searchapp import views

urlpatterns = [
    path('', views.search, name='search'),
    path('add/', views.add, name='add'),
    path('admin/', admin.site.urls),
]

html - add.html

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en">
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
<head>
    <meta charset="UTF-8">
    <title>Transport Portal - Add Page</title>
</head>
<body>
<div class="header">
    <img src="{% static 'images/hpcl_logo.png' %}">
    <h1>Transportation Portal</h1>
</div>
<div class="topnav">
    <ul>
        <li><a href="home.html">Home</a></li>
        <li><a href="homehp.html">Search</a></li>
        <li><a class="active" href="add.html">Add</a></li>
    </ul>
</div>
<div class="add">
    <form method="POST">
        {% csrf_token %}
        {{ addform.as_p }}
    </form>
</div>
</body>
</html>

标签: djangodjango-forms

解决方案


我认为问题在于你如何到达那里。

您的 html 中有以下内容

<li><a class="active" href="add.html">Add</a></li>

这将获取 html 页面,但您想要href="{% url 'add' %}"获取 django url。


推荐阅读