Django表单没有出现

2024-09-25 00:29:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个项目,结果遇到了一些问题。 所以我的表单在模板中根本不显示自己。 但是我以前已经创建了另一个表单,它可以正常工作!在

所以我的代码是:

模型.py

class Project(models.Model):
    class Meta:
        db_table = "project"

    COLORS = (
        ('R', 'Red'),
        ('B', 'Blue'),
        ('G', 'Green'),
        ('Y', 'Yellow')
     )
    project_title = models.CharField(max_length=200)
    project_color = models.CharField(max_length=1, choices=COLORS)

    def __str__(self):
        return self.project_title

表单.py

^{pr2}$

视图.py

def addproject(request):
    if request.POST:
        form_p = ProjectForm(request.POST)
        if form_p.is_valid():
            form_p.save(commit=False)
            return HttpResponseRedirect('/')
   else:
        form_p = ProjectForm()
    context = {
        'projects': Project.objects.all(),
        "form": form_p,
        'username': auth.get_user(request).username,
    }
    context.update(csrf(request))
    return render(request, 'index.html', context)

网址.py

urlpatterns = [
    url(r'^addproject/$', views.addproject, name='addproject'),]

索引.html

<form action="/addproject/" method="post">
    {% csrf_token %}
    {{ form_p.as_table }}
    <button type="submit" class="btn btn-primary">Add Project</button>
</form>

Tags: pyformproject表单returntitlemodelsrequest
2条回答

您是否已将表单导入到py.py视图? 把这个放到你的视图.py在

from .forms import ProjectForm

问题是在模板中,您将上下文变量调用为form_p,同时将其作为“form”

索引.html

<form action="/addproject/" method="post">
    {% csrf_token %}
    {{ form.as_table }}
    <button type="submit" class="btn btn-primary">Add Project</button>
</form>

相关问题 更多 >