Django表单,用户输入字段不在模板中呈现

时间:2016-08-15 18:50:40

标签: python django forms

Django newb在这里,但我正在学习。

问题陈述

输入字段无法在html模板中呈现。

在浏览器中输出

|提交按钮|

相关代码

forms.py
from django import forms
from django.db import models

class PostNotes(forms.Form):
    clientid = models.IntegerField()
    notetext = models.CharField(max_length=1000)

-

views.py
def post_form_notes(request):
    if request.method == 'GET':
        sawit = True
        form = PostNotes(initial={'notetext':'This is a sample note'})
    else:
        sawit = False
        pass
    return render(request, 'clientadmin/post_form_notes.html', {
        'form': form,
        'sawit': sawit,
    })

-

post_form_notes.html
{{ sawit }}
<form action="" method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Submit" />
</form>

已完成排查

  • 我已经退出了相当数量的代码(特别是如果我看到的话 POST)来自浏览器的请求。没变。
  • 我还包含一个变量,以确保我看到GET请求以及模板变量正在运行。我得到True的输出。
  • 尽可能简化表单类。

1 个答案:

答案 0 :(得分:0)

我修改了forms.py以使用我已经拥有的数据库模型。

<强> forms.py:

from django.forms import ModelForm
from clientadmin.models import notes

class PostNotes(ModelForm):
    class Meta:
        model = notes
        fields = ['notedate', 'notetext']

我还修改了views.py以不设置初始值,因此该函数使用以下内容而不是所要求的内容。

<强> models.py:

def post_form_notes(request):
    if request.method == 'GET':
        form = PostNotes()
    else:
        pass
    return render(request, 'clientadmin/post_form_notes.html', {
        'form': form,
    })

希望这可以帮助那些遇到同样问题的人......

请参阅以下网址以获取更多信息:https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/