views.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:django-tellme 作者: ludrao 项目源码 文件源码
def post_feedback(request):
    if request.method == 'POST' and request.is_ajax():

        # Copy Post data names into names used into the model in order to automatically create the model/form
        # from the request dicts
        feedback = json.loads(request.POST["feedback"])
        if request.user.id:
            data = {'url': feedback['url'], 'browser': json.dumps(feedback['browser']), 'comment': feedback['note'],
                        'user': request.user.id}
        else:
            data = {'url': feedback['url'], 'browser': json.dumps(feedback['browser']), 'comment': feedback['note'],
                        'email': feedback['email']}
        imgstr = feedback['img'].split(';base64,')[1]
        file = {'screenshot': ContentFile(b64decode(imgstr), name="screenshot_" + get_random_string(6) + ".png")}
        form = FeedbackForm(data, file)
        # check whether it's valid:
        if form.is_valid():
            f = form.save()

            if hasattr(settings, 'TELLME_FEEDBACK_EMAIL'):
                message = _("Your site %(host)s received feedback from %(user)s.\n"
                            "The comments were:\n"
                            "%(note)s.\n\n"
                            "See the full feedback content here: %(url)s")\
                          % {'host': request.get_host(), 'user': str(request.user), 'note': feedback['note'],
                             'url': request.build_absolute_uri(
                                 urlresolvers.reverse('admin:tellme_feedback_change', args=(f.id,)))}
                send_mail(
                        _('[%(host)s] Received feedback') % {'host': request.get_host()},
                        message,
                        settings.SERVER_EMAIL,
                        [settings.TELLME_FEEDBACK_EMAIL],
                        fail_silently=True)

            return JsonResponse({})
        else:
            return JsonResponse({'error': dict(form.errors)})

    else:
        return HttpResponseBadRequest()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号