Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django表格不';不渲染_Python_Django_Django Forms - Fatal编程技术网

Python Django表格不';不渲染

Python Django表格不';不渲染,python,django,django-forms,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 = '

你好,先谢谢你。我有一个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 
我的看法:

#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} )
我的模板:

#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 />
#...
<form method="POST" action=".">
    <table>
    {% csrf_token %}
    {{ form.as_table }}
    <input type="submit" />
    </table>
</form>
#draft_input.html
#...
草稿输入
草稿

{{form}}

#...

谢谢你的帮助。

例如,试试
{{{form.as_p}}
。还有其他捷径。您还可以手动创建表单。查看Django文档:

在html文件中尝试“form.as\p”或“form.as\u table”而不是“form”

编辑:查看文档并使用其中一个示例作为模型:

在示例中,您在模型中定义了可能不正确的表单参数。您希望保留特定于表单的修改,例如DraftForm类中的help_文本,现在保留在DraftInput模型中

这是一个简单的问题,你应该从文档中复制一些东西,然后朝着你想要的方向努力


希望这有帮助。

使用
{{{form.as_table}
或从表单标签周围删除

我认为这是转向泛型类的一个标志:)只要尝试CreateView类即可

在views.py文件中:

class CreateDraftInputView(CreateView):
    model = DraftInput
    template_name = "test/draftinput_form.html"
    success_url = "/test/listdraft/"
简单创建模板:

#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 />
#...
<form method="POST" action=".">
    <table>
    {% csrf_token %}
    {{ form.as_table }}
    <input type="submit" />
    </table>
</form>

阅读答案线索,你似乎仍然运气不佳

尝试在django交互式shell(
python manage.py shell
)中执行这些命令。在尝试格式化表单时,可能会引发异常。当模板中的表单生成过程中抛出异常时,在HTML中不会看到太多;但django贝壳通常会揭穿罪犯

python manage.py shell

In [1]: from simple.models import DraftForm

In [2]: form = DraftForm()

In [3]: form.as_p()

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

无法快速找到根本原因,但只有在变量声明遵循传统的
module.Class
表单时,“我的表单”中的字段才会显示。问题可能在类加载顺序的某个地方

from simple import models

# ...
form = models.DraftForm()

您是否查看了源代码以查看显示的内容?我遇到了这个问题,因为我忘了调整我的
url.py
以使用新视图。它进一步使用了我临时添加的TemplateView。这不起作用…我太有希望了…我使用了
{{form.as_table}
并保留了
标签谢谢!!!在尝试了您的建议并阅读了文档之后,我仍然无法让我的代码正常工作。你还有其他建议吗?我厌倦了使用
{{{form.as_p}}
没有乐趣。我现在要看看你推荐的那些文件。非常感谢。在阅读了文档之后,我仍然无法让代码正常工作。您还有其他建议吗?您可以安装django调试工具栏并检查表单是否呈现到上下文中。有人认为泛型视图比泛型类好:)在尝试了您的建议并阅读了文档后,我仍然无法让代码正常工作。你还有其他建议吗?@dpbklyn在我的回答中补充了一些信息。祝你好运