python - Django 表单字段未加载到模板中

标签 python django forms

我似乎无法在我的模板中加载模型表单。

模型.py

from django.db import models

class Event(models.Model):
    name = models.CharField(max_length=60)
    start_datetime = models.DateTimeField()
    end_datetime = models.DateTimeField()
    description = models.TextField()

表单.py

from django import forms
from .models import Event

class EventForm(forms.ModelForm):
    class Meta:
        model = Event
        fields = ['name']

View .py

from django.shortcuts import render
from .forms import EventForm

def index(request):
    if request.method == 'POST':
        form = EventForm(request.POST)
        if form.is_valid():
            form.save()
    else:
        form = EventForm()

    return render(request, 'index.html')

index.html

<form method="POST" action="">
  {% csrf_token %}
  {{ form.as_p }}
</form>
<button type="submit">Save</button>

当在 GET 请求的views.py 中添加 print(form) 时,我可以让表单在加载时打印到控制台,但它不会加载到模板中。

最佳答案

关于使用表单的不同方式的好例子:https://docs.djangoproject.com/en/1.11/topics/forms/#the-view

要渲染的 index.html 需要 form 变量。所以Render方法调用应该是这样的:

render(request, 'index.html', {'form': form})

关于python - Django 表单字段未加载到模板中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45784462/

相关文章:

python - 是否可以在 Python 类定义中使用导入的类方法而不运行导入文件中的所有代码?

python - 带条件的嵌套对象列表

forms - 如何在 Delphi XE2 中使 TMaskEdit 进行多行编辑

javascript - 在未发布的表单中添加了密码字段

php - 一个表单,一个提交按钮,但有两个操作

python - 分解多个列,在 PySpark 中保留列名称

python - 将父模型中的 bool 字段检查到行中 - Odoo v8

python - 更改生成的迁移文件的基本路径

Django,多态和N+1查询问题

python - 如何在 Django 的 views.py 中引发 ValidationError(或执行类似操作)?