Python 视图没有';t返回HttpResponse对象。它使用Django返回None
因此,我尝试使用Django将表单显示到html中,它必须是在数据库中创建新页面的表单。 我之所以使用ModelForm,是因为我已经读过,它是向用户提供在数据库中输入数据的工具的最佳方式 在views.py中:Python 视图没有';t返回HttpResponse对象。它使用Django返回None,python,django,httpresponse,modelform,Python,Django,Httpresponse,Modelform,因此,我尝试使用Django将表单显示到html中,它必须是在数据库中创建新页面的表单。 我之所以使用ModelForm,是因为我已经读过,它是向用户提供在数据库中输入数据的工具的最佳方式 在views.py中: from django.shortcuts import redirect, render from django.http import HttpResponse from .models import Pages, PagesForm
from django.shortcuts import redirect, render
from django.http import HttpResponse
from .models import Pages, PagesForm
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
from django.contrib.auth import login, logout, authenticate
from django.contrib import messages
from .forms import NewUserForm
def homepage(request):
return render(request = request,
template_name='main/home.html',
context = {})
def pages(request):
if request.method == "POST":
form = PagesForm(request.POST)
if form.is_valid():
pass
#nada, solo activa la validación
else:
form = PagesForm()
return render(request,
template_name='main/pages.html',
context = {"Pages":PagesForm.objects.all})
在models.py中:
from django.db import models
from datetime import datetime
from django.forms import ModelForm
# Create your models here.
#Pages son entradas del diario
class Pages(models.Model):
title = models.CharField(max_length=300)
content = models.TextField()
author = models.CharField(max_length=50)
published_date = models.DateTimeField("Published: ", default=datetime.now())
def __str__(self):
return self.title
class PagesForm(ModelForm):
class Meta:
model = Pages
fields = '__all__'
在pages.html中:
{% extends "main/header.html" %}
{% block content %}
<div>
{% for page in Pages %}
<h2>Display recent pages</h2>
<div class="col s12 m6 l4">
<div class="card blue-grey darken-1">
<div class="card-content white-text">
<span class="card-title">{{page.title}}</span>
<p>{{page.published_date}}</p>
<p>{{page.author}}</p>
<p>{{page.content|safe}}</p>
<div class="card-action">
<a href="#">Leer más</a>
</div>
</div>
</div>
</div>
{% endfor %}
</div>
<h2>Create a new page</h2>
<br>
<form method="POST">
{% csrf_token %}
{{form.as_p}}
<button style="background-color:#F4EB16; color:blue" class="btn btn-outline-info" type="submit">Submit</button>
</form>
{% endblock %}
{%extends“main/header.html”%}
{%block content%}
{第%页中的第%页}
显示最近的页面
{{page.title}}
{{page.published{u date}
{{page.author}}
{{page.content | safe}}
{%endfor%}
创建新页面
{%csrf_令牌%}
{{form.as_p}}
提交
{%endblock%}
我将非常感谢您的帮助,非常感谢 像这样更改视图
def页面(请求):
如果
if request.method==“POST”:
不是真的
,该怎么办?那么它返回什么呢?
if request.method == "POST":
form = PagesForm(request.POST)
if form.is_valid():
form.save()
#nada, solo activa la validación
form = PagesForm()
return render(request,
template_name='main/pages.html',
context = {"Pages":form})
else:
form = PagesForm()
return render(request,
template_name='main/pages.html',
context = {"Pages":form})