gpt4 book ai didi

Django - [Errno 111] 连接被拒绝

转载 作者:行者123 更新时间:2023-11-28 19:34:14 26 4
gpt4 key购买 nike

当我发表评论时,不保存,崩溃(错误:[Errno 111] 连接被拒绝),为什么?

View .py
import time
from calendar import month_name

from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import get_object_or_404, render_to_response
from django.contrib.auth.decorators import login_required
from django.core.context_processors import csrf
from django.core.paginator import Paginator, InvalidPage, EmptyPage
from django.core.urlresolvers import reverse

from dbe.blog.models import *
from django.forms import ModelForm


class CommentForm(ModelForm):
class Meta:
model = Comment
exclude = ["post"]


def post(request, pk):
post = Post.objects.get(pk=pk)
comments = Comment.objects.filter(post=post)
d = dict(post=post, comments=comments, form=CommentForm(), user=request.user)
d.update(csrf(request))
return render_to_response("post.html", d)

def delete_comment(request, post_pk, pk=None):
if request.user.is_staff:
if not pk: pklst = request.POST.getlist("delete")
else: pklst = [pk]

for pk in pklst:
Comment.objects.get(pk=pk).delete()
return HttpResponseRedirect(reverse("dbe.blog.views.post", args=[post_pk]))

def add_comment(request, pk):
p = request.POST

if p.has_key("body") and p["body"]:
author = "Anonymous"
if p["author"]: author = p["author"]
comment = Comment(post=Post.objects.get(pk=pk))

cf = CommentForm(p, instance=comment)
cf.fields["author"].required = False
comment = cf.save(commit=False)

comment.author = author
notify = True
if request.user.username == "ak": notify = False
comment.save(notify=notify)
return HttpResponseRedirect(reverse("dbe.blog.views.post", args=[pk]))

def mkmonth_lst():
if not Post.objects.count(): return []

# set up vars
year, month = time.localtime()[:2]
first = Post.objects.order_by("created")[0]
fyear = first.created.year
fmonth = first.created.month
months = []

for y in range(year, fyear-1, -1):
start, end = 12, 0
if y == year: start = month
if y == fyear: end = fmonth-1

for m in range(start, end, -1):
months.append((y, m, month_name[m]))
return months

def month(request, year, month):
posts = Post.objects.filter(created__year=year, created__month=month)
return render_to_response("list.html", dict(post_list=posts, user=request.user,
months=mkmonth_lst(), archive=True))

def main(request):
posts = Post.objects.all().order_by("-created")
paginator = Paginator(posts, 10)
try: page = int(request.GET.get("page", '1'))
except ValueError: page = 1

try:
posts = paginator.page(page)
except (InvalidPage, EmptyPage):
posts = paginator.page(paginator.num_pages)

return render_to_response("list.html", dict(posts=posts, user=request.user,
post_list=posts.object_list, months=mkmonth_lst()))

模型.py
from django.db import models  
from django.contrib.auth.models import User
from django.contrib import admin
from django.core.mail import send_mail


class Post(models.Model):
title = models.CharField(max_length=60)
body = models.TextField()
created = models.DateTimeField(auto_now_add=True)

def __unicode__(self):
return self.title


class Comment(models.Model):
created = models.DateTimeField(auto_now_add=True)
author = models.CharField(max_length=60)
body = models.TextField()
post = models.ForeignKey(Post)

def __unicode__(self):
return unicode("%s: %s" % (self.post, self.body[:60]))

def save(self, *args, **kwargs):
if "notify" in kwargs and kwargs["notify"] == True:
message = "Comment was was added to '%s' by '%s': \n\n%s" % (self.post, self.author,
self.body)
from_addr = "no-reply@mydomain.com"
recipient_list = ["myemail@mydomain.com"]
send_mail("New comment added", message, from_addr, recipient_list)

if "notify" in kwargs: del kwargs["notify"]
super(Comment, self).save(*args, **kwargs)

管理员

class PostAdmin(admin.ModelAdmin):  
search_fields = ["title"]
display_fields = ["title", "created"]

class CommentAdmin(admin.ModelAdmin):
display_fields = ["post", "author", "created"]

谢谢!

最佳答案

看起来您正在尝试发送邮件 (send_mail()) 和您的 mail settings在您的 settings.py 中不正确。

您应该查看 sending emails 的文档.


出于调试目的,您可以使用以下命令设置本地 smtpserver:

python -m smtpd -n -c DebuggingServer localhost:1025

并相应地调整您的邮件设置:

EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025

此处记录:Testing e-mail sending

作为启动专用调试服务器的替代方法,您可以使用 console.EmailBackend这是最近添加到 Django 的。

关于Django - [Errno 111] 连接被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5802189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com