Django表单不呈现

dpb*_*lyn 0 python django django-forms

您好,并提前感谢您.我有一个不在模板上渲染的django表单."提交"按钮呈现,但表单没有.我一直在盯着这个代码大约6个小时,它可能很简单,我可能需要另外一双眼睛.

我的型号:

#models.py

from django.db import models
from django.forms import ModelForm

class DraftInput(models.Model):
    player_id = models.IntegerField(help_text = 'Input Player ID Number', max_length = 5)

    def __unicode__(self):
        return self.player_id

class DraftForm(ModelForm):
    class Meta:
        model = DraftInput 
Run Code Online (Sandbox Code Playgroud)

我的观点:

#views.py

from django.shortcuts import render_to_response

from simple.models import DraftInput
from simple.models import DraftForm

from django.template import RequestContext

#...    

def draft_view(request):

    if request.method == 'POST':
        form = DraftForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = DraftForm()

    return render_to_response('simple/draft_input.html', {'form': form} )
Run Code Online (Sandbox Code Playgroud)

我的模板:

#draft_input.html

#...

        <h1>Draft Input</h1>
        <h2>Draft</h2><br /><br />
            <form method="POST" action="">
            <table>{{ form }}</table>
            <input type="submit" value="Draft Player" />
        </form><br /><br />
#...
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

Ger*_*Yin 8

阅读答案帖子,看来你还是运气不好.

尝试在django交互式shell(python manage.py shell)中执行这些命令.当您尝试格式化表单时,可能会抛出异常.在模板中生成表单期间抛出异常时,您在HTML中看不到多少内容; 但是django shell通常会揭开罪魁祸首.

python manage.py shell

In [1]: from simple.models import DraftForm

In [2]: form = DraftForm()

In [3]: form.as_p()
Run Code Online (Sandbox Code Playgroud)

您可以查看此处生成的HTML,也可以捕获异常.这将告诉您更多有关您需要修复的内容.