输入字段未显示在模板上

时间:2019-07-23 15:54:51

标签: python django django-forms

当我尝试运行该项目时,我是django的新手,我的模板当前页面没有任何输入字段,仅显示给定标签 我不知道我哪里出了问题 你们可以帮忙吗?

  

这些是我的models.py文件

from django.db import models

# Create your models here.
class Student(models.Model):
    sid = models.CharField(max_length=100)
    sname = models.CharField(max_length=100)
    sclass = models.CharField(max_length=100)
    semail = models.EmailField(max_length=100)
    srollnumber = models.CharField(max_length=100)
    scontact = models.CharField(max_length=100)
    saddress = models.CharField(max_length=100)
    class Meta:
        db_table = "student"
  

这是我的forms.py文件

from django import forms
from student.models import Student
class StudentForm(forms.ModelForm):
    class Meta:
        model = Student
        fields = "__all__"
  

这些是我的views.py文件

from django.shortcuts import render
from student.models import Student
from student.forms import StudentForm



def student_home(request):
    return render(request, 'employee/dash.html')

def add_student(request):
    if request.method == "POST":
        form = StudentForm(request.POST)
        if form.is_valid():
            try:
                form.save()
                return render(request, 'employee/dash.html')
            except:
                pass
    else:
        form = StudentForm()
        return render(request, 'student/addstudent.html')
  

模板

<!DOCTYPE html>
    <html lang="en">
    <head>

        <title>addstudent</title>
    </head>
    <body>
        <a href="/home" >home</a>
        <form method="POST" action="/add_student">
            {% csrf_token %}
            <label>Student ID:</label>
                {{ form.sid }}
            <label>Name :</label>
                {{ form.sname }}
            <label>Class :</label>
                {{ form.sclass }}
            <label>Email ID:</label>
                {{ form.semail }}
            <label>Roll Number :</label>
                {{ form.srollnumber }}
            <label>Contact :</label>
                {{ form.scontact }}
            <label>Address :</label>
                {{ form.saddress }}
            <button type="submit">Submit</button>
        </form>
    </body>
    </html>

2 个答案:

答案 0 :(得分:0)

您没有在render函数中包含任何上下文。您的视图应为:

def add_student(request):
    if request.method == "POST":
        form = StudentForm(request.POST)
        if form.is_valid():
            try:
                form.save()
                return render(request, 'employee/dash.html', context={'form': form})
            except:
                pass
    else:
        form = StudentForm()
        return render(request, 'student/addstudent.html', context={'form': form})

答案 1 :(得分:0)

您忘记将上下文提供给render函数:

   return render(request, 'student/addstudent.html',context={'form':form})

应该工作