示例#1
0
def add_author_view(request):
    """
    添加作者
    """
    form = AddAuthorForm(request.POST)
    if not form.is_valid():
        messages.warning(request, "</br>".join(form_error(form)))
        return HttpResponseRedirect(reverse('author_list'))

    item_id = form.cleaned_data.get('item_id')
    try:
        if not item_id:
            Author.objects.create(
                name=form.cleaned_data.get('name'),
                email=form.cleaned_data.get('email'),
                website=form.cleaned_data.get('website'),
            )
            messages.success(request, '添加成功')
        else:
            Author.objects.filter(id=item_id).update(
                name=form.cleaned_data.get('name'),
                email=form.cleaned_data.get('email'),
                website=form.cleaned_data.get('website'),
            )
            messages.success(request, '编辑成功')
        return HttpResponseRedirect(reverse('author_list'))
    except Exception as e:
        messages.error(request, '操作失败: %s' % e)
        return HttpResponseRedirect(reverse('author_list'))
示例#2
0
def add_friend_link_view(request):
    """
    添加/编辑友情链接
    """
    form = AddFriendLinkForm(request.POST)
    if not form.is_valid():
        messages.warning(request, "</br>".join(form_error(form)))
        return HttpResponseRedirect(reverse('friend_link_list'))

    edit_id = form.cleaned_data.get('edit_id')
    try:
        if not edit_id:
            Links.objects.create(
                name=form.cleaned_data.get('name'),
                link=form.cleaned_data.get('link'),
                avatar=form.cleaned_data.get('avatar'),
                desc=form.cleaned_data.get('desc'),
            )
            messages.success(request, '添加成功')
        else:
            Links.objects.filter(id=edit_id).update(
                name=form.cleaned_data.get('name'),
                link=form.cleaned_data.get('link'),
                avatar=form.cleaned_data.get('avatar'),
                desc=form.cleaned_data.get('desc'),
            )
            messages.success(request, '编辑成功')
        cache.delete_pattern('tmp_links')  # 清除缓存
        return HttpResponseRedirect(reverse('friend_link_list'))
    except Exception as e:
        messages.error(request, '操作失败: %s' % e)
        return HttpResponseRedirect(reverse('friend_link_list'))
示例#3
0
文件: views.py 项目: HM-JR/my_site
def add_carousel_view(request):
    """
    添加轮播图片
    """
    form = AddCarouselForm(request.POST, request.FILES)
    if not form.is_valid():
        messages.error(request, "</br>".join(form_error(form)))
        return HttpResponseRedirect(reverse('carousel_list'))
    try:
        filestream = request.FILES.get('path')
        key, img_path = upload_data(filestream, 'blog')
        img_type = int(form.cleaned_data.get('img_type'))
        CarouselImg.objects.create(
            name=form.cleaned_data.get('name'),
            description=form.cleaned_data.get('description'),
            path=img_path,
            link=form.cleaned_data.get('link'),
            weights=form.cleaned_data.get('weights'),
            img_type=img_type,
        )
        messages.success(request, '添加成功')
        if img_type == CarouselImgType.BANNER:
            cache.delete_pattern('tmp_carouse_imgs')  # 清除缓存
        elif img_type == CarouselImgType.ADS:
            cache.delete_pattern('tmp_ads_imgs')  # 清除缓存
        return HttpResponseRedirect(reverse('carousel_list'))
    except Exception as e:
        messages.error(request, '添加失败: %s' % e)
        return HttpResponseRedirect(reverse('carousel_list'))
示例#4
0
def add_ownmessage_view(request):
    """
    添加主人寄语
    """
    tp = "manager/create_ownmessage.html"
    context = {
        "active_classes": ['.blog', '.ownmessage_list'],
    }
    if request.method == "GET":
        return render(request, tp, context)

    if request.method == "POST":
        form = OperateOwnMessageForm(request.POST)
        if not form.is_valid():
            messages.warning(request, "</br>".join(form_error(form)))
            return HttpResponseRedirect(reverse('ownmessage_list'))
        try:
            OwnerMessage.objects.create(
                summary=form.cleaned_data.get("summary"),
                message=form.cleaned_data.get("message"),
                editor=EditorKind.Markdown)
            messages.success(request, '添加成功')
            return HttpResponseRedirect(reverse('ownmessage_list'))
        except Exception as ex:
            messages.warning(request, ex)
            return HttpResponseRedirect(reverse('ownmessage_list'))
示例#5
0
def blog_edit_view(request, item_id):
    """
    博客编辑
    :param request:
    :return:
    """
    article = Article.objects.filter(id=item_id).first()
    if not article:
        messages.warning(request, "此博客不存在")
        return HttpResponseRedirect(reverse('blog_list'))

    selected_tags = article.get_tags()
    auhtors = Author.objects.values("id", "name")
    classifications = Classification.objects.values("id", "name")
    tags = Tag.objects.values("id", "name")
    context = {
        "active_classes": ['.blog', '.blog_list'],
        "article": article,
        "auhtors": auhtors,
        "classifications": classifications,
        "tags": tags,
        "selected_tags": selected_tags,
        "blog_status": BlogStatus.CHOICES,
        "item_id": item_id
    }
    if request.method == "GET":
        return render(request, "manager/edit_blog.html", context)

    if request.method == "POST":
        form = OperateBlogForm(request.POST)
        if not form.is_valid():
            messages.warning(request, "</br>".join(form_error(form)))
            return HttpResponseRedirect(reverse('blog_list'))

        try:
            new_tags = request.POST.getlist('tags')
            article.set_tags(new_tags)
            Article.objects.filter(id=item_id).update(
                title=form.cleaned_data.get("title"),
                author_id=form.cleaned_data.get("author"),
                classification_id=form.cleaned_data.get("classification"),
                content=form.cleaned_data.get("content"),
                count=form.cleaned_data.get("count"),
                status=form.cleaned_data.get("status"),
                editor=form.cleaned_data.get("editor"),
                last_update=datetime.now()
            )
            messages.success(request, '修改成功')
            cache.delete_pattern("tmp_articles")  # 清除缓存
            cache.delete_pattern("tmp_archive")  # 清除缓存
            return HttpResponseRedirect(reverse('blog_list'))
        except Exception as ex:
            messages.warning(request, ex)
            return HttpResponseRedirect(reverse('blog_list'))
示例#6
0
def blog_edit_view(request, item_id):
    """
    博客编辑
    :param request:
    :return:
    """
    article = Article.objects.filter(id=item_id).first()
    if not article:
        messages.warning(request, "此博客不存在")
        return HttpResponseRedirect(reverse('blog_list'))

    selected_tags = article.get_tags()
    auhtors = Author.objects.values("id", "name")
    classifications = Classification.objects.values("id", "name")
    tags = Tag.objects.values("id", "name")
    context = {
        "active_classes": ['.blog', '.blog_list'],
        "article": article,
        "auhtors": auhtors,
        "classifications": classifications,
        "tags": tags,
        "selected_tags": selected_tags,
        "blog_status": BlogStatus.CHOICES,
        "item_id": item_id
    }
    if request.method == "GET":
        return render(request, "manager/edit_blog.html", context)

    if request.method == "POST":
        form = OperateBlogForm(request.POST)
        if not form.is_valid():
            messages.warning(request, "</br>".join(form_error(form)))
            return HttpResponseRedirect(reverse('blog_list'))

        try:
            new_tags = request.POST.getlist('tags')
            article.set_tags(new_tags)
            Article.objects.filter(id=item_id).update(
                title=form.cleaned_data.get("title"),
                author_id=form.cleaned_data.get("author"),
                classification_id=form.cleaned_data.get("classification"),
                content=form.cleaned_data.get("content"),
                count=form.cleaned_data.get("count"),
                status=form.cleaned_data.get("status"),
                editor=form.cleaned_data.get("editor"),
            )
            messages.success(request, u'修改成功')
            return HttpResponseRedirect(reverse('blog_list'))
        except Exception, ex:
            messages.warning(request, ex)
            return HttpResponseRedirect(reverse('blog_list'))
示例#7
0
文件: views.py 项目: jiaort/my-site3
def blog_create_view(request):
    """
    博客添加
    """
    tp = "manager/create_blog.html"
    auhtors = Author.objects.values("id", "name")
    classifications = Classification.objects.values("id", "name")
    tags = Tag.objects.values("id", "name")
    context = {
        "active_classes": ['.blog', '.blog_list'],
        "auhtors": auhtors,
        "classifications": classifications,
        "tags": tags,
        "blog_status": BlogStatus.CHOICES,
    }
    if request.method == "GET":
        return render(request, tp, context)

    if request.method == "POST":
        form = OperateBlogForm(request.POST)
        if not form.is_valid():
            messages.warning(request, "</br>".join(form_error(form)))
            return HttpResponseRedirect(reverse('blog_list'))
        try:
            article = Article.objects.create(
                title=form.cleaned_data.get("title"),
                author_id=form.cleaned_data.get("author"),
                classification_id=form.cleaned_data.get("classification"),
                content=form.cleaned_data.get("content"),
                count=form.cleaned_data.get("count"),
                status=form.cleaned_data.get("status"),
                editor=EditorKind.Markdown,
            )
            tags = request.POST.getlist('tags')
            article.set_tags(tags)
            messages.success(request, u'添加成功')
            cache.delete_pattern("tmp_articles")  # 清除缓存
            cache.delete_pattern("tmp_archive")  # 清除缓存
            return HttpResponseRedirect(reverse('blog_list'))
        except Exception as ex:
            messages.warning(request, ex)
            return HttpResponseRedirect(reverse('blog_list'))
示例#8
0
def add_music_view(request):
    """
    添加背景音乐
    """
    form = AddMusicForm(request.POST)
    if not form.is_valid():
        messages.error(request, "</br>".join(form_error(form)))
        return HttpResponseRedirect(reverse('music_list'))
    try:
        Music.objects.create(
            name=form.cleaned_data.get('name'),
            url=form.cleaned_data.get('url'),
            cover=form.cleaned_data.get('cover'),
            artist=form.cleaned_data.get('artist'),
        )
        messages.success(request, u'添加成功')
        return HttpResponseRedirect(reverse('music_list'))
    except Exception as e:
        messages.error(request, u'添加失败: %s' % e)
        return HttpResponseRedirect(reverse('music_list'))
示例#9
0
def add_music_view(request):
    """
    添加背景音乐
    """
    form = AddMusicForm(request.POST)
    if not form.is_valid():
        messages.error(request, "</br>".join(form_error(form)))
        return HttpResponseRedirect(reverse('music_list'))
    try:
        Music.objects.create(
            name=form.cleaned_data.get('name'),
            url=form.cleaned_data.get('url'),
            cover=form.cleaned_data.get('cover'),
            artist=form.cleaned_data.get('artist'),
        )
        messages.success(request, u'添加成功')
        return HttpResponseRedirect(reverse('music_list'))
    except Exception as e:
        messages.error(request, u'添加失败: %s' % e)
        return HttpResponseRedirect(reverse('music_list'))
示例#10
0
def add_author_view(request):
    """
    添加作者
    """
    form = AddAuthorForm(request.POST)
    if not form.is_valid():
        messages.warning(request, "</br>".join(form_error(form)))
        return HttpResponseRedirect(reverse('author_list'))

    try:
        Author.objects.create(
            name=form.cleaned_data.get('name'),
            email=form.cleaned_data.get('email'),
            website=form.cleaned_data.get('website'),
        )
        messages.success(request, u'添加成功')
        return HttpResponseRedirect(reverse('author_list'))
    except Exception as e:
        messages.error(request, u'添加失败: %s' % e)
        return HttpResponseRedirect(reverse('author_list'))
示例#11
0
def add_carousel_view(request):
    """
    添加轮播图片
    """
    form = AddCarouselForm(request.POST)
    if not form.is_valid():
        messages.error(request, "</br>".join(form_error(form)))
        return HttpResponseRedirect(reverse('carousel_list'))
    try:
        CarouselImg.objects.create(
            name=form.cleaned_data.get('name'),
            description=form.cleaned_data.get('description'),
            path=form.cleaned_data.get('path'),
            link=form.cleaned_data.get('link'),
            weights=form.cleaned_data.get('weights'),
        )
        messages.success(request, u'添加成功')
        return HttpResponseRedirect(reverse('carousel_list'))
    except Exception as e:
        messages.error(request, u'添加失败: %s' % e)
        return HttpResponseRedirect(reverse('carousel_list'))
示例#12
0
def add_carousel_view(request):
    """
    添加轮播图片
    """
    form = AddCarouselForm(request.POST)
    if not form.is_valid():
        messages.error(request, "</br>".join(form_error(form)))
        return HttpResponseRedirect(reverse('carousel_list'))
    try:
        CarouselImg.objects.create(
            name=form.cleaned_data.get('name'),
            description=form.cleaned_data.get('description'),
            path=form.cleaned_data.get('path'),
            link=form.cleaned_data.get('link'),
            weights=form.cleaned_data.get('weights'),
        )
        messages.success(request, u'添加成功')
        return HttpResponseRedirect(reverse('carousel_list'))
    except Exception as e:
        messages.error(request, u'添加失败: %s' % e)
        return HttpResponseRedirect(reverse('carousel_list'))
示例#13
0
def add_friend_link_view(request):
    """
    添加友情链接
    """
    form = AddFriendLinkForm(request.POST)
    if not form.is_valid():
        messages.warning(request, "</br>".join(form_error(form)))
        return HttpResponseRedirect(reverse('friend_link_list'))

    try:
        Links.objects.create(
            name=form.cleaned_data.get('name'),
            link=form.cleaned_data.get('link'),
            avatar=form.cleaned_data.get('avatar'),
            desc=form.cleaned_data.get('desc'),
        )
        messages.success(request, u'添加成功')
        return HttpResponseRedirect(reverse('friend_link_list'))
    except Exception as e:
        messages.error(request, u'添加失败: %s' % e)
        return HttpResponseRedirect(reverse('friend_link_list'))
示例#14
0
def add_friend_link_view(request):
    """
    添加友情链接
    """
    form = AddFriendLinkForm(request.POST)
    if not form.is_valid():
        messages.warning(request, "</br>".join(form_error(form)))
        return HttpResponseRedirect(reverse('friend_link_list'))

    try:
        Links.objects.create(
            name=form.cleaned_data.get('name'),
            link=form.cleaned_data.get('link'),
            avatar=form.cleaned_data.get('avatar'),
            desc=form.cleaned_data.get('desc'),
        )
        messages.success(request, u'添加成功')
        return HttpResponseRedirect(reverse('friend_link_list'))
    except Exception as e:
        messages.error(request, u'添加失败: %s' % e)
        return HttpResponseRedirect(reverse('friend_link_list'))
示例#15
0
def blog_create_view(request):
    """
    博客添加
    """
    tp = "manager/create_blog.html"
    auhtors = Author.objects.values("id", "name")
    classifications = Classification.objects.values("id", "name")
    tags = Tag.objects.values("id", "name")
    context = {
        "active_classes": ['.blog', '.blog_list'],
        "auhtors": auhtors,
        "classifications": classifications,
        "tags": tags,
        "blog_status": BlogStatus.CHOICES,
    }
    if request.method == "GET":
        return render(request, tp, context)

    if request.method == "POST":
        form = OperateBlogForm(request.POST)
        if not form.is_valid():
            messages.warning(request, "</br>".join(form_error(form)))
            return HttpResponseRedirect(reverse('blog_list'))
        try:
            article = Article.objects.create(
                title=form.cleaned_data.get("title"),
                author_id=form.cleaned_data.get("author"),
                classification_id=form.cleaned_data.get("classification"),
                content=form.cleaned_data.get("content"),
                count=form.cleaned_data.get("count"),
                status=form.cleaned_data.get("status"),
                editor=EditorKind.Markdown,
            )
            tags = request.POST.getlist('tags')
            article.set_tags(tags)
            messages.success(request, u'添加成功')
            return HttpResponseRedirect(reverse('blog_list'))
        except Exception as ex:
            messages.warning(request, ex)
            return HttpResponseRedirect(reverse('blog_list'))
示例#16
0
def edit_ownmessage_view(request, item_id):
    """
    主人寄语编辑
    :param request:
    :return:
    """
    message = OwnerMessage.objects.filter(id=item_id).first()
    if not message:
        messages.warning(request, "此主人寄语不存在")
        return HttpResponseRedirect(reverse('ownmessage_list'))
    tp = "manager/edit_ownmessage.html"
    context = {
        "active_classes": ['.blog', '.ownmessage_list'],
        "message": message,
        "item_id": item_id
    }
    if request.method == "GET":
        return render(request, tp, context)

    if request.method == "POST":
        form = OperateOwnMessageForm(request.POST)
        if not form.is_valid():
            messages.warning(request, "</br>".join(form_error(form)))
            return HttpResponseRedirect(reverse('ownmessage_list'))
        data = {
            "summary": form.cleaned_data.get("summary"),
            "message": form.cleaned_data.get("message"),
            "editor": form.cleaned_data.get("editor"),
            "last_update": datetime.now()
        }
        try:
            OwnerMessage.objects.filter(id=item_id).update(**data)
            messages.success(request, '修改成功')
            return HttpResponseRedirect(reverse('ownmessage_list'))
        except Exception as ex:
            messages.warning(request, ex)
            return HttpResponseRedirect(reverse('ownmessage_list'))
示例#17
0
def edit_ownmessage_view(request, item_id):
    """
    主人寄语编辑
    :param request:
    :return:
    """
    message = OwnerMessage.objects.filter(id=item_id).first()
    if not message:
        messages.warning(request, "此主人寄语不存在")
        return HttpResponseRedirect(reverse('ownmessage_list'))
    tp = "manager/edit_ownmessage.html"
    context = {
        "active_classes": ['.blog', '.ownmessage_list'],
        "message": message,
        "item_id": item_id
    }
    if request.method == "GET":
        return render(request, tp, context)

    if request.method == "POST":
        form = OperateOwnMessageForm(request.POST)
        if not form.is_valid():
            messages.warning(request, "</br>".join(form_error(form)))
            return HttpResponseRedirect(reverse('ownmessage_list'))
        data = {
            "summary": form.cleaned_data.get("summary"),
            "message": form.cleaned_data.get("message"),
            "editor": form.cleaned_data.get("editor")
        }
        try:
            OwnerMessage.objects.filter(id=item_id).update(**data)
            messages.success(request, u'修改成功')
            return HttpResponseRedirect(reverse('ownmessage_list'))
        except Exception, ex:
            messages.warning(request, ex)
            return HttpResponseRedirect(reverse('ownmessage_list'))
示例#18
0
def add_ownmessage_view(request):
    tp = "manager/create_ownmessage.html"
    context = {
        "active_classes": ['.blog', '.ownmessage_list'],
    }
    if request.method == "GET":
        return render(request, tp, context)

    if request.method == "POST":
        form = OperateOwnMessageForm(request.POST)
        if not form.is_valid():
            messages.warning(request, "</br>".join(form_error(form)))
            return HttpResponseRedirect(reverse('ownmessage_list'))
        try:
            OwnerMessage.objects.create(
                summary=form.cleaned_data.get("summary"),
                message=form.cleaned_data.get("message"),
                editor=EditorKind.Markdown
            )
            messages.success(request, u'添加成功')
            return HttpResponseRedirect(reverse('ownmessage_list'))
        except Exception as ex:
            messages.warning(request, ex)
            return HttpResponseRedirect(reverse('ownmessage_list'))
示例#19
0
def add_comments_view(request):
    """
    添加评论
    """
    form = CommentForm(request.POST)
    if not form.is_valid():
        return http_response(request, statuscode=ERRORCODE.PARAM_ERROR, msg_cn="</br>".join(form_error(form)))

    nickname = form.cleaned_data.get('nickname')
    email = form.cleaned_data.get('email')
    website = form.cleaned_data.get('website')
    content = form.cleaned_data.get('content')
    target = form.cleaned_data.get('target')
    parent_comment_id = form.cleaned_data.get('parent_comment_id')

    try:
        user, created = Visitor.objects.update_or_create(
            nickname=nickname,
            email=email,
            defaults={
                "nickname": nickname,
                "email": email,
                "website": website,
                "avatar": gravatar_url(email)
            }
        )
        ip_address = get_clientip(request)
        country, province, city = get_location_by_ip(ip_address)
        anchor = ''.join(random.sample(string.ascii_lowercase + string.digits, 16))
        comment_data = {
            "user_id": user.id,
            "content": content,
            "target": target,
            "ip_address": ip_address,
            "country": country,
            "province": province,
            "city": city,
            "anchor": anchor,
        }
        # 二级回复
        if parent_comment_id:
            parent_comment = Comments.objects.select_related().filter(pk=parent_comment_id).first()
            reply_to = parent_comment.user if parent_comment else None
            comment_data.update({"parent_id": parent_comment_id, "reply_to": reply_to})
            mail_body = MailTemplate.notify_parent_user.format(
                parent_user=parent_comment.user.nickname,
                parent_comment=parent_comment.content,
                comment_user=nickname,
                comment=content,
                target_url=DOMAIN_NAME + parent_comment.target,
                anchor='#' + parent_comment.anchor
            )
            send_email_task.delay(reply_to.email, mail_body)
        Comments.objects.create(**comment_data)
        cache.delete_pattern(target)  # 清除缓存
        if not parent_comment_id and not user.blogger:
            mail_body = MailTemplate.notify_blogger.format(
                nickname=nickname,
                comment=content,
                target_url=DOMAIN_NAME + target,
                anchor='#' + anchor
            )
            send_email_task.delay(BLOGGER_EMAIL, mail_body)
        return http_response(request, statuscode=ERRORCODE.SUCCESS)
    except Exception as exp:
        return http_response(request, statuscode=ERRORCODE.FAILED, msg=exp)