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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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
Django view newsletter.views.control_newsletter_edit没有';t返回HttpResponse对象。它没有返回任何结果_Django_Python 3.x_Django Models_Django Templates_Django Views - Fatal编程技术网

Django view newsletter.views.control_newsletter_edit没有';t返回HttpResponse对象。它没有返回任何结果

Django view newsletter.views.control_newsletter_edit没有';t返回HttpResponse对象。它没有返回任何结果,django,python-3.x,django-models,django-templates,django-views,Django,Python 3.x,Django Models,Django Templates,Django Views,这是我的URL.py: from django.urls import path from newsletter.views import control_newsletter, control_newsletter_list, control_newsletter_detail, control_newsletter_edit urlpatterns = [ path('newsletter/', control_newsletter, name='control_newslette

这是我的URL.py:

from django.urls import path
from newsletter.views import control_newsletter, control_newsletter_list, control_newsletter_detail, control_newsletter_edit

urlpatterns = [
    path('newsletter/', control_newsletter, name='control_newsletter'),
    path('newsletter_list/', control_newsletter_list, name='control_newsletter_list'),
    path('newsletter_detail/<int:pk>/', control_newsletter_detail, name='control_newsletter_detail'),
    path('newsletter_edit/<int:pk>/', control_newsletter_edit, name='control_newsletter_edit'),]
当我尝试访问
时事通讯\u edit/1/
从我的teplate代码中的此处开始:

<div class="col-sm-8">
            <div class="col-sm-2">
                <a href="{% url 'control_newsletter_edit' pk=newsletter.pk %}">
                    <button class="btn-success">Edit</button>
                </a>
            </div>
我一次又一次地检查了我的url.py和views.py,但我找不到我的问题所在。 有人知道我为什么要面对这个错误吗? 此外,很抱歉我的问题中出现了错误。
如果您需要完整的my views.py,请告诉。

如果request.method=='POST',您的问题就在这里。因为您可以看到,只有在request方法是POST时才返回模板,确保返回的内容超出了if条件

如果request.method==“POST”:您的问题就在这里,因为您可以看到,只有在请求方法为POST时才返回模板,确保您返回的内容超出了if条件

您没有提到如果出现非
httppost
请求时应该发生什么。它可以通过使用一个简单的
else
块来完成,如下所示


def control_newsletter_edit(request, pk):
    newsletter = get_object_or_404(Newsletter, pk=pk)
    if request.method == 'POST':

        form = NewsletterCreationForm(request.POST, instance=Newsletter)

        if form.is_valid():
            newsletter = form.save()

            if newsletter.status == 'Published':
                subject = newsletter.subject
                body = newsletter.body
                from_email = global_settings.EMAIL_HOST_USER
                for email in newsletter.email.all():
                    send_mail(subject=subject, from_email=from_email, recipient_list=[email], message=body,
                              fail_silently=True)
                messages.success(request, 'Your Changes Write Successfully.',
                                 'alert alert-success alert-dismissible')
            else:
                messages.warning(request, 'SomeThing Went Wrong..',
                                 'alert alert-warning alert-dismissible')
            return redirect('control_newsletter_detail', pk=newsletter.pk)

        else:
            form = NewsletterCreationForm(instance=newsletter)

            context = {
                'form': form,
            }

            return render(request, 'control_panel/control_newsletter.html', context)
    else:
        form = NewsletterCreationForm()  # if method not HTTP POST
    return render(request, 'control_panel/control_newsletter.html', {"form":form})

def控制通讯编辑(请求,主键):
时事通讯=获取对象或404(时事通讯,主键=主键)
如果request.method==“POST”:
表单=时事通讯CreationForm(request.POST,实例=时事通讯)
如果form.is_有效():
新闻稿=form.save()
如果newsletter.status==“已发布”:
主题=时事通讯。主题
body=newsletter.body
from\u email=全局设置。email\u主机\u用户
对于newsletter.email.all()中的电子邮件:
发送邮件(主题=主题,发件人=发件人,收件人列表=[电子邮件],邮件=正文,
失败(默认值=真)
messages.success(请求“您的更改写入成功”,
“警报成功警报可驳回”)
其他:
消息。警告(请求“出现问题…”,
‘警告可驳回’)
返回重定向('control\u newsletter\u detail',pk=newsletter.pk)
其他:
表单=时事通讯CreationForm(实例=时事通讯)
上下文={
“形式”:形式,
}
返回渲染(请求“控制面板/control\u newsletter.html”,上下文)
其他:
form=newsletteCreationForm()#如果方法不是HTTP POST

return render(请求'control_panel/control_newsletter.html',{“form”:form})
您没有提到如果出现非HTTP POST的请求时会发生什么。它可以通过使用一个简单的
else
块来完成,如下所示


def control_newsletter_edit(request, pk):
    newsletter = get_object_or_404(Newsletter, pk=pk)
    if request.method == 'POST':

        form = NewsletterCreationForm(request.POST, instance=Newsletter)

        if form.is_valid():
            newsletter = form.save()

            if newsletter.status == 'Published':
                subject = newsletter.subject
                body = newsletter.body
                from_email = global_settings.EMAIL_HOST_USER
                for email in newsletter.email.all():
                    send_mail(subject=subject, from_email=from_email, recipient_list=[email], message=body,
                              fail_silently=True)
                messages.success(request, 'Your Changes Write Successfully.',
                                 'alert alert-success alert-dismissible')
            else:
                messages.warning(request, 'SomeThing Went Wrong..',
                                 'alert alert-warning alert-dismissible')
            return redirect('control_newsletter_detail', pk=newsletter.pk)

        else:
            form = NewsletterCreationForm(instance=newsletter)

            context = {
                'form': form,
            }

            return render(request, 'control_panel/control_newsletter.html', context)
    else:
        form = NewsletterCreationForm()  # if method not HTTP POST
    return render(request, 'control_panel/control_newsletter.html', {"form":form})

def控制通讯编辑(请求,主键):
时事通讯=获取对象或404(时事通讯,主键=主键)
如果request.method==“POST”:
表单=时事通讯CreationForm(request.POST,实例=时事通讯)
如果form.is_有效():
新闻稿=form.save()
如果newsletter.status==“已发布”:
主题=时事通讯。主题
body=newsletter.body
from\u email=全局设置。email\u主机\u用户
对于newsletter.email.all()中的电子邮件:
发送邮件(主题=主题,发件人=发件人,收件人列表=[电子邮件],邮件=正文,
失败(默认值=真)
messages.success(请求“您的更改写入成功”,
“警报成功警报可驳回”)
其他:
消息。警告(请求“出现问题…”,
‘警告可驳回’)
返回重定向('control\u newsletter\u detail',pk=newsletter.pk)
其他:
表单=时事通讯CreationForm(实例=时事通讯)
上下文={
“形式”:形式,
}
返回渲染(请求“控制面板/control\u newsletter.html”,上下文)
其他:
form=newsletteCreationForm()#如果方法不是HTTP POST

返回渲染(请求,'control_panel/control_newsletter.html',{“form”:form})
是的,那是我的问题,谢谢你,先生。我只是犯了一个错误,把其他内容放在:
form=NewsletterCreationForm(instance=newsletter)context={“form”:form,}返回渲染(请求,'control\u panel/control\u newsletter.html',context)
带有额外的SPCE,当我删除它时,它被修复了。是的,我的问题就是我的问题,谢谢你,先生。我只是犯了一个错误,把它放在下面:
form=NewsletterCreationForm(instance=newsletter)context={'form':form,}返回渲染(请求'control\u panel/control\u newsletter.html',上下文)
和额外的spcae,当我删除它时,它会被修复。

def control_newsletter_edit(request, pk):
    newsletter = get_object_or_404(Newsletter, pk=pk)
    if request.method == 'POST':

        form = NewsletterCreationForm(request.POST, instance=Newsletter)

        if form.is_valid():
            newsletter = form.save()

            if newsletter.status == 'Published':
                subject = newsletter.subject
                body = newsletter.body
                from_email = global_settings.EMAIL_HOST_USER
                for email in newsletter.email.all():
                    send_mail(subject=subject, from_email=from_email, recipient_list=[email], message=body,
                              fail_silently=True)
                messages.success(request, 'Your Changes Write Successfully.',
                                 'alert alert-success alert-dismissible')
            else:
                messages.warning(request, 'SomeThing Went Wrong..',
                                 'alert alert-warning alert-dismissible')
            return redirect('control_newsletter_detail', pk=newsletter.pk)

        else:
            form = NewsletterCreationForm(instance=newsletter)

            context = {
                'form': form,
            }

            return render(request, 'control_panel/control_newsletter.html', context)
    else:
        form = NewsletterCreationForm()  # if method not HTTP POST
    return render(request, 'control_panel/control_newsletter.html', {"form":form})