Django-[Errno 111]拒绝连接

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

views.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()))

models.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"]

回答:

为了进行调试,你可以使用以下命令设置本地smtpserver:

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

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

EMAIL_HOST = 'localhost'

EMAIL_PORT = 1025

以上是 Django-[Errno 111]拒绝连接 的全部内容, 来源链接: utcz.com/qa/422010.html

回到顶部