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()
评论列表
文章目录