Моя форма Django не отображается на странице HTML - PullRequest
0 голосов
/ 25 июня 2019

enter image description here Я пытаюсь создать addform, чтобы принять ввод от пользователя и добавить его в мою модель, однако форма не отображается на странице, может кто-нибудь сказать мне, кто я делать неправильно? Вот код для форм.py, views.py и add.html:

forms.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')])

views.py

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

urls.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>

Ответы [ 2 ]

1 голос
/ 25 июня 2019

Я думаю, что проблема в том, как вы туда доберетесь.

У вас есть следующее в html

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

Это собирается поднять страницу HTML, но вы хотите href="{% url 'add' %}", который подберет URL Джанго.

0 голосов
/ 25 июня 2019

Вместо dict используйте контекст

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

Пожалуйста, прочитайте это. контекст

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