Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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 视图没有';t返回HttpResponse对象。它使用Django返回None_Python_Django_Httpresponse_Modelform - Fatal编程技术网

Python 视图没有';t返回HttpResponse对象。它使用Django返回None

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

因此,我尝试使用Django将表单显示到html中,它必须是在数据库中创建新页面的表单。 我之所以使用ModelForm,是因为我已经读过,它是向用户提供在数据库中输入数据的工具的最佳方式

在views.py中:


       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})