• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python cache.add_cache_bypass函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中mezzanine.utils.cache.add_cache_bypass函数的典型用法代码示例。如果您正苦于以下问题:Python add_cache_bypass函数的具体用法?Python add_cache_bypass怎么用?Python add_cache_bypass使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了add_cache_bypass函数的16个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: comment

def comment(request, template="generic/comments.html"):
    """
    Handle a ``ThreadedCommentForm`` submission and redirect back to its
    related object.
    """
    response = initial_validation(request, "comment")
    if isinstance(response, HttpResponse):
        return response
    obj, post_data = response
    form = ThreadedCommentForm(request, obj, post_data)
    if form.is_valid():
        url = obj.get_absolute_url()
        if is_spam(request, form, url):
            return redirect(url)
        comment = form.save(request)
        response = redirect(add_cache_bypass(comment.get_absolute_url()))
        # Store commenter's details in a cookie for 90 days.
        for field in ThreadedCommentForm.cookie_fields:
            cookie_name = ThreadedCommentForm.cookie_prefix + field
            cookie_value = post_data.get(field, "")
            set_cookie(response, cookie_name, cookie_value)
        return response
    elif request.is_ajax() and form.errors:
        return HttpResponse(dumps({"errors": form.errors}))
    # Show errors with stand-alone comment form.
    context = {"obj": obj, "posted_comment_form": form}
    response = render(request, template, context)
    return response
开发者ID:Gu1,项目名称:mezzanine,代码行数:28,代码来源:views.py


示例2: save

 def save(self, request):
     """
     Saves a new comment and sends any notification emails.
     """
     comment = self.get_comment_object()
     obj = comment.content_object
     if request.user.is_authenticated():
         comment.user = request.user
     comment.by_author = request.user == getattr(obj, "user", None)
     comment.ip_address = ip_for_request(request)
     comment.replied_to_id = self.data.get("replied_to")
     comment.save()
     comment_was_posted.send(sender=comment.__class__, comment=comment,
                             request=request)
     notify_emails = split_addresses(settings.COMMENTS_NOTIFICATION_EMAILS)
     if notify_emails:
         subject = _("New comment for: ") + str(obj)
         context = {
             "comment": comment,
             "comment_url": add_cache_bypass(comment.get_absolute_url()),
             "request": request,
             "obj": obj,
         }
         send_mail_template(subject, "email/comment_notification",
                            settings.DEFAULT_FROM_EMAIL, notify_emails,
                            context)
     return comment
开发者ID:EthanBlackburn,项目名称:mezzanine,代码行数:27,代码来源:forms.py


示例3: save

    def save(self, request):
        """
        Saves a new comment and sends any notification emails.
        """
        comment = self.get_comment_object()
        obj = comment.content_object
        if request.user.is_authenticated():
            comment.user = request.user
            comment.user_name = best_name(comment.user)

        comment.by_author = request.user == getattr(obj, "user", None)
        comment.ip_address = ip_for_request(request)
        comment.replied_to_id = self.data.get("replied_to")
        comment.save()
        comment_was_posted.send(sender=comment.__class__, comment=comment,
                                request=request)
        notify_emails = split_addresses(settings.COMMENTS_NOTIFICATION_EMAILS)
        notify_emails.append(obj.user.email)
        reply_to_comment = comment.replied_to
        if reply_to_comment is not None:
            notify_emails.append(reply_to_comment.user.email)
        if notify_emails:
            subject = "[HydroShare Support] New comment by {c_name} for: {res_obj}".format(
                c_name=comment.user_name, res_obj=str(obj))
            context = {
                "comment": comment,
                "comment_url": add_cache_bypass(comment.get_absolute_url()),
                "request": request,
                "obj": obj,
            }
            send_mail_template(subject, "email/comment_notification",
                               settings.DEFAULT_FROM_EMAIL, notify_emails,
                               context)

        return comment
开发者ID:hydroshare,项目名称:hydroshare,代码行数:35,代码来源:forms.py


示例4: rating

def rating(request):
    """
    Handle a ``RatingForm`` submission and redirect back to its
    related object.
    """
    response = initial_validation(request, "rating")
    if isinstance(response, HttpResponse):
        return response
    obj, post_data = response
    url = add_cache_bypass(obj.get_absolute_url().split("#")[0])
    response = redirect(url + "#rating-%s" % obj.id)
    rating_form = RatingForm(request, obj, post_data)
    if rating_form.is_valid():
        rating_form.save()
        if request.is_ajax():
            # Reload the object and return the rating fields as json.
            obj = obj.__class__.objects.get(id=obj.id)
            rating_name = obj.get_ratingfield_name()
            json = {}
            for f in ("average", "count", "sum"):
                json["rating_" + f] = getattr(obj, "%s_%s" % (rating_name, f))
            response = HttpResponse(dumps(json))
        ratings = ",".join(rating_form.previous + [rating_form.current])
        set_cookie(response, "mezzanine-rating", ratings)
    return response
开发者ID:Gu1,项目名称:mezzanine,代码行数:25,代码来源:views.py


示例5: comment

def comment(request, template="generic/comments.html"):
    """
    Handle a ``ReviewForm`` submission and redirect back to its
    related object.
    """
    response = initial_validation(request, "comment")
    if isinstance(response, HttpResponse):
        return response
    obj, post_data = response
    form = ReviewForm(request, obj, request.POST )
    if form.is_valid():
        url = obj.get_absolute_url()
        if is_spam(request, form, url):
            return redirect(url)
        comment = form.save(request)
        response = redirect(add_cache_bypass(comment.get_absolute_url()))
        # Store commenter's details in a cookie for 90 days.
        for field in ReviewForm.cookie_fields:
            cookie_name = ReviewForm.cookie_prefix + field
            cookie_value = post_data.get(field, "")
            set_cookie(response, cookie_name, cookie_value)
        """
            Send activity feed to those who follow this vendor page.
        """
        if request.user.is_authenticated():
            action.send(obj, verb=settings.GOT_REVIEW_VERB, target=comment )
        return response
    elif request.is_ajax() and form.errors:
        return HttpResponse(dumps({"errors": form.errors}))
    # Show errors with stand-alone comment form.
    context = {"obj": obj, "posted_comment_form": form}
    response = render(request, template, context)
    return response
开发者ID:vadhawal,项目名称:mezzanine,代码行数:33,代码来源:views.py


示例6: rating

def rating(request):
    """
    Handle a ``RatingForm`` submission and redirect back to its
    related object.
    """
    try:
        model = get_model(*request.POST["content_type"].split(".", 1))
        obj = model.objects.get(id=request.POST["object_pk"])
        url = add_cache_bypass(obj.get_absolute_url()) + "#rating-%s" % obj.id
    except (KeyError, TypeError, AttributeError, ObjectDoesNotExist):
        # Something was missing from the post so abort.
        return HttpResponseRedirect("/")
    try:
        rating_value = int(request.POST["value"])
    except (KeyError, ValueError):
        return HttpResponseRedirect(url)
    # There can only be one ``RatingField``, find its manager.
    for field in obj._meta.many_to_many:
        if isinstance(field, RatingField):
            rating_manager = getattr(obj, field.name)
            break
    else:
        raise TypeError("%s doesn't contain a RatingField." % obj)
    ratings = request.COOKIES.get("mezzanine-rating", "").split(",")
    rating_string = "%s.%s" % (request.POST["content_type"],
                               request.POST["object_pk"])
    if rating_string in ratings:
        # Already rated so abort.
        return HttpResponseRedirect(url)
    rating_manager.add(Rating(value=rating_value))
    response = HttpResponseRedirect(url)
    ratings.append(rating_string)
    expiry = 60 * 60 * 24 * 365
    set_cookie(response, "mezzanine-rating", ",".join(ratings), expiry)
    return response
开发者ID:waveaccounting,项目名称:mezzanine,代码行数:35,代码来源:views.py


示例7: set_device

def set_device(request, device=""):
    """
    Sets a device name in a cookie when a user explicitly wants to go
    to the site for a particular device (eg mobile).
    """
    response = redirect(add_cache_bypass(request.GET.get("next", "/")))
    set_cookie(response, "mezzanine-device", device, 60 * 60 * 24 * 365)
    return response
开发者ID:422053362,项目名称:mezzanine,代码行数:8,代码来源:views.py


示例8: comment

def comment(request, template="generic/comments.html"):
    """
    Handle a ``ThreadedCommentForm`` submission and redirect back to its
    related object.
    """

    post_data = request.POST
    settings.use_editable()
    if settings.COMMENTS_ACCOUNT_REQUIRED:
        if not request.user.is_authenticated():
            # Account required but user isn't authenticated - store
            # their post data in the session and redirect to login.
            request.session["unauthenticated_comment"] = post_data
            error(request, _("You must log in to comment. Please log in or "
                             "sign up, and your comment will be posted."))
            url = "%s?next=%s" % (settings.LOGIN_URL, reverse("comment"))
            return redirect(url)
        elif "unauthenticated_comment" in request.session:
            # User has logged in after post data being stored in the
            # session for an unauthenticated comment post, so use it.
            post_data = request.session.pop("unauthenticated_comment")

    try:
        model = get_model(*post_data["content_type"].split(".", 1))
        obj = model.objects.get(id=post_data["object_pk"])
    except (KeyError, TypeError, AttributeError, ObjectDoesNotExist):
        # Something was missing from the post so abort.
        return HttpResponseRedirect("/")

    form = ThreadedCommentForm(request, obj, post_data)
    if form.is_valid():
        url = obj.get_absolute_url()
        if is_spam(request, form, url):
            return redirect(url)
        comment = form.get_comment_object()
        if request.user.is_authenticated():
            comment.user = request.user
        comment.by_author = request.user == getattr(obj, "user", None)
        comment.ip_address = request.META.get("HTTP_X_FORWARDED_FOR",
                                              request.META["REMOTE_ADDR"]).split(',')[0].strip()
        comment.replied_to_id = post_data.get("replied_to")
        comment.save()
        comment_was_posted.send(sender=comment.__class__, comment=comment,
                                request=request)
        url = add_cache_bypass(comment.get_absolute_url())
        response = HttpResponseRedirect(url)
        # Store commenter's details in a cookie for 90 days.
        cookie_expires = 60 * 60 * 24 * 90
        for field in ThreadedCommentForm.cookie_fields:
            cookie_name = ThreadedCommentForm.cookie_prefix + field
            cookie_value = post_data.get(field, "")
            set_cookie(response, cookie_name, cookie_value, cookie_expires)
        return response
    else:
        # Show errors with stand-alone comment form.
        context = {"obj": obj, "posted_comment_form": form}
        return render(request, template, context)
开发者ID:waveaccounting,项目名称:mezzanine,代码行数:57,代码来源:views.py


示例9: save

    def save(self, request):
        """
        Saves a new comment and sends any notification emails.
        """
        comment = self.get_comment_object()
        obj = comment.content_object
        comment.user = request.user
        user_name = request.user.get_full_name()
        if not user_name:
            user_name = request.user.username

        comment.user_name = user_name
        # comment.email = request.user.email

        comment.by_author = request.user == getattr(obj, "user", None)
        comment.ip_address = ip_for_request(request)
        comment.replied_to_id = self.data.get("replied_to")

        # Mezzanine's duplicate check that also checks `replied_to_id`.
        lookup = {
            "content_type": comment.content_type,
            "object_pk": comment.object_pk,
            "user_name": comment.user_name,
            "user_email": comment.user_email,
            "user_url": comment.user_url,
            "replied_to_id": comment.replied_to_id,
        }
        for duplicate in self.get_comment_model().objects.filter(**lookup):
            if (duplicate.submit_date.date() == comment.submit_date.date() and
                    duplicate.comment == comment.comment):
                return duplicate

        comment.save()
        comment_was_posted.send(sender=comment.__class__, comment=comment,
                                request=request)
        notify_emails = split_addresses(settings.COMMENTS_NOTIFICATION_EMAILS)
        if notify_emails:
            subject = ugettext("New comment for: ") + str(obj)
            context = {
                "comment": comment,
                "comment_url": add_cache_bypass(comment.get_absolute_url()),
                "request": request,
                "obj": obj,
            }
            send_mail_template(subject, "email/comment_notification",
                               settings.DEFAULT_FROM_EMAIL, notify_emails,
                               context)
        return comment
开发者ID:hachacha,项目名称:rhizome.org,代码行数:48,代码来源:forms.py


示例10: spam

def spam(request, template="generic/comments.html"):
    response = initial_validation(request, "spam")
    if isinstance(response, HttpResponse):
        return response
    obj, post_data = response
    form = CommentFlagForm(request, obj, post_data)
    if form.is_valid():
        url = obj.get_absolute_url()
        if is_spam(request, form, url):
            return redirect(url)
        form.save(request)
        messages.info(request, _('Se guardó como spam'))
        response = redirect(add_cache_bypass(obj.get_absolute_url()))
        # for field in CommentFlagForm.cookie_fields:
        #     cookie_name = CommentFlagForm.cookie_prefix + field
        #     cookie_value = post_data.get(field, "")
        #     set_cookie(response, cookie_name, cookie_value)
        return response
    context = {"obj": obj, "spam_form": form}
    response = render(request, template, context)
    return response
开发者ID:gustavopp93,项目名称:forum,代码行数:21,代码来源:views.py


示例11: comment_on_review

def comment_on_review(request, template="generic/comments.html"):
    """
    Handle a ``ThreadedCommentForm`` submission and redirect back to its
    related object.
    """

    response = initial_validation(request, "comment_on_review")
    if isinstance(response, HttpResponse):
        return response
    obj, post_data = response

    form = ThreadedCommentForm(request, obj, request.POST)
    if form.is_valid():
        url = obj.get_absolute_url()
        if is_spam(request, form, url):
            return redirect(url)  
        comment = form.save(request)
        if request.is_ajax():
            #comment = form.save(request)
            comments = [comment]

            html = render_to_string('generic/includes/subcomment.html', { 'comments_for_thread': comments }) 
            res = {'html': html}
            return HttpResponse( simplejson.dumps(res), 'application/json' )
        else:
            response = redirect(add_cache_bypass(comment.get_absolute_url()))
            return response

    elif request.is_ajax() and form.errors:
        return HttpResponse(dumps({"errors": form.errors}))

    # Show errors with stand-alone comment form.
    if not request.is_ajax():
        context = {"obj": obj, "posted_comment_form": form}
        response = render(request, template, context)
        return response
开发者ID:vadhawal,项目名称:mezzanine,代码行数:36,代码来源:views.py


示例12: rating

def rating(request):
    """
    Handle a ``RatingForm`` submission and redirect back to its
    related object.
    """
    response = initial_validation(request, "rating")
    if isinstance(response, HttpResponse):
        return response
    obj, post_data = response
    url = obj.get_absolute_url()
    url = add_cache_bypass(url.split("#")[0]) + "#rating-%s" % obj.id
    response = redirect(url)
    rating_form = RatingForm(request, obj, post_data)
    if rating_form.is_valid():
        rating_form.save()
        if request.is_ajax():
            # Reload the object and return the new rating.
            obj = obj.__class__.objects.get(id=obj.id)
            fields = ("rating_avg", "rating_count", "rating_sum")
            json = dumps(dict([(f, getattr(obj, f)) for f in fields]))
            response = HttpResponse(json)
        ratings = ",".join(rating_form.previous + [rating_form.current])
        set_cookie(response, "mezzanine-rating", ratings)
    return response
开发者ID:maen693,项目名称:mezzanine-openshift-master,代码行数:24,代码来源:views.py


示例13: edit_review

def edit_review(request, review_id, template="generic/includes/write_review.html"):
	if not review_id :
		raise Http404()

	review_obj = Review.objects.get(id=review_id)

	if review_obj and review_obj.user != request.user:
		raise Http404()

	context = RequestContext(request)

	parent_obj = review_obj.content_object

	if request.method == 'POST':
		form = ReviewForm(request, parent_obj, request.POST )

		if form.is_valid():
			url = review_obj.get_absolute_url()
			if is_spam(request, form, url):
				return redirect(url)

			review_obj.comment             = form.cleaned_data['comment']
			review_obj.title               = form.cleaned_data['title']
			review_obj.overall_value       = form.cleaned_data['overall_value']
			review_obj.price_value         = form.cleaned_data['price_value']
			review_obj.website_ex_value    = form.cleaned_data['website_ex_value']
			review_obj.quality_value       = form.cleaned_data['quality_value']
			review_obj.service_value       = form.cleaned_data['service_value']
			exchange_value   			   = form.cleaned_data['exchange_value']
			"""
			exchange_value is not a required field. Can contain null data as well. Therefore need to handle it seperately.
			"""
			if exchange_value == '':
				review_obj.exchange_value = None
			else:
				review_obj.exchange_value = exchange_value

			review_obj.shop_again       = form.cleaned_data['shop_again']
			blog_category               = form.cleaned_data['category']
			bought_category             = None
			try:
				bought_category         = BlogCategory.objects.get(slug=slugify(blog_category))
			except:
				pass

			try:
				reviewRatingObj                    = RequiredReviewRating.objects.get(commentid=review_obj.id)
				reviewRatingObj.overall_value      = review_obj.overall_value
				reviewRatingObj.price_value        = review_obj.price_value
				reviewRatingObj.website_ex_value   = review_obj.website_ex_value
				reviewRatingObj.quality_value      = review_obj.quality_value
				reviewRatingObj.service_value      = review_obj.service_value
				reviewRatingObj.shop_again         = review_obj.shop_again
				reviewRatingObj.save()

				optReviewRatingObj                  = OptionalReviewRating.objects.get(commentid=review_obj.id)
				optReviewRatingObj.exchange_value   = review_obj.service_value
				optReviewRatingObj.save()
				
			except:
				pass

			review_obj.save()
			if bought_category:
				for blog_category in review_obj.bought_category.all():
					review_obj.bought_category.remove(blog_category)
				review_obj.bought_category.add(bought_category)

			if request.is_ajax():
				template = 'generic/includes/comment_ajax.html'
				review_page = request.GET.get('reviewpage', '0')

				if review_page == '1':
					template = 'generic/includes/review_ajax.html'

				html = render_to_string(template, { 'comment': review_obj, 'request':request }) 
				res = { 'html': html,
						'store' : review_obj.content_object.title,
				   		'success':True}
				response = HttpResponse( simplejson.dumps(res), 'application/json' )
			else:
				response = redirect(add_cache_bypass(review_obj.get_absolute_url()))

			return response

		elif form.errors:
			return HttpResponse(simplejson.dumps({"errors": form.errors}), 'application/json' )
	else:        
		data = {
			"comment"           : review_obj.comment,
			"title"             : review_obj.title,
			"overall_value"     : review_obj.overall_value,
			"price_value"       : review_obj.price_value,
			"website_ex_value"  : review_obj.website_ex_value,
			"quality_value"     : review_obj.quality_value,
			"service_value"     : review_obj.service_value,
			"exchange_value"    : review_obj.exchange_value,
			"shop_again"        : review_obj.shop_again,
			"category"          : review_obj.bought_category.all()[0] #we support multiple bought categoires but there's no multiselect option in UI.
		}
#.........这里部分代码省略.........
开发者ID:vadhawal,项目名称:mezzanine,代码行数:101,代码来源:views.py


示例14: write_review

def write_review(request, content_type_id, object_id, template="generic/includes/write_review.html"):
	store = request.GET.get('store', 'None')
	parent = None
	if store != 'None':
		store = store.lower()
		try:
			parent = BlogPost.objects.get(title__iexact=store)
			content_type_id = ContentType.objects.get_for_model(parent).pk
			object_id = parent.pk
		except:
			pass

	if not parent:
		ctype = get_object_or_404(ContentType, pk=content_type_id)
		parent = get_object_or_404(ctype.model_class(), pk=object_id)

	prefix = "write_review"

	if request.method == 'POST':
		response = initial_validation_review(request, prefix, content_type_id, object_id, store)

		if isinstance(response, HttpResponse):
		    return response
		obj, post_data = response

		form = ReviewForm(request, obj, request.POST)
		if form.is_valid() and request.user.is_authenticated():
			url = obj.get_absolute_url()
			if is_spam(request, form, url):
				return redirect(url)  
			comment = form.save(request)

			"""
				Send activity feed to those who follow this vendor page.
			"""
			if request.user.is_authenticated():
				action.send(obj, verb=settings.GOT_REVIEW_VERB, target=comment )

			if request.is_ajax():
				html = render_to_string('generic/includes/comment_ajax.html', { 'comment': comment, 'request':request }) 
				res = {'html': html,
					   'store': obj.title,
					   'success':True}
				response = HttpResponse( simplejson.dumps(res), 'application/json' )
				# Store commenter's details in a cookie for 90 days.
				for field in ReviewForm.cookie_fields:
					cookie_name = ReviewForm.cookie_prefix + field
					cookie_value = post_data.get(field, "")
					set_cookie(response, cookie_name, cookie_value)	
								
				return response
			else:
				response = redirect(add_cache_bypass(comment.get_absolute_url()))
				return response

		elif request.is_ajax() and form.errors:
			return HttpResponse( simplejson.dumps({"errors": form.errors,
										"success":False}), 'application/json')		
	else:
		post_data = None
		posted_session_key = "unauthenticated_" + prefix
		post_session_generic_review_store_key = "unauthenticated_store_" + prefix

		if posted_session_key in request.session:
			post_data = request.session.pop(posted_session_key)
			form = ReviewForm(request, parent, post_data)
			if post_session_generic_review_store_key in request.session:
				request.session.pop(post_session_generic_review_store_key)
		else:
			form = ReviewForm(request, parent)

		form.fields['overall_value'].widget 	= forms.HiddenInput()
		form.fields['price_value'].widget 		= forms.HiddenInput()
		form.fields['website_ex_value'].widget 	= forms.HiddenInput()
		form.fields['quality_value'].widget 	= forms.HiddenInput()
		form.fields['service_value'].widget 	= forms.HiddenInput()
		form.fields['exchange_value'].widget 	= forms.HiddenInput()

		action_url = reverse("write_review", kwargs={
														'content_type_id':content_type_id,
														'object_id':object_id
													})
		if store != 'None':
			action_url += '?store=' + store

		context = {"new_review":True,  "obj": parent, "posted_comment_form": form, "action_url": action_url }
		response = render(request, template, context)
		return response
开发者ID:vadhawal,项目名称:mezzanine,代码行数:88,代码来源:views.py


示例15: save

    def save(self, request):
        """
        Saves a new comment and sends any notification emails.
        """
        post_data = request.POST
        review = self.get_comment_object()
        obj = review.content_object
        if request.user.is_authenticated():
            review.user = request.user
            review.user_name = review.user.username
        review.by_author = request.user == getattr(obj, "user", None)
        review.ip_address = ip_for_request(request)
        review.replied_to_id = self.data.get("replied_to")

        requiredreviewrating_name = obj.get_requiredreviewratingfield_name()
        requiredreviewrating_manager = getattr(obj, requiredreviewrating_name)
        optionalreviewrating_name = obj.get_optionalreviewratingfield_name()
        optionalreviewrating_manager = getattr(obj, optionalreviewrating_name)
        
        if request.user.is_authenticated():
            requiredreviewrating_instance = RequiredReviewRating(user=request.user)
        else:
            requiredreviewrating_instance = RequiredReviewRating()

        if request.user.is_authenticated():
            optionalreviewrating_instance = OptionalReviewRating(user=request.user)
        else:
            optionalreviewrating_instance = OptionalReviewRating()

        if (post_data.get("title")):
            review.title = post_data.get("title")
        if (post_data.get("overall_value")):
            review.overall_value = post_data.get("overall_value")
            requiredreviewrating_instance.overall_value = review.overall_value
        if (post_data.get("price_value")):
            review.price_value = post_data.get("price_value")
            requiredreviewrating_instance.price_value = review.price_value
        if (post_data.get("website_ex_value")):
            review.website_ex_value = post_data.get("website_ex_value")
            requiredreviewrating_instance.website_ex_value = review.website_ex_value
        if (post_data.get("quality_value")):
            review.quality_value = post_data.get("quality_value")
            requiredreviewrating_instance.quality_value = review.quality_value
        if (post_data.get("service_value")):
            review.service_value = post_data.get("service_value")
            requiredreviewrating_instance.service_value = review.service_value
        if (post_data.get("shop_again")):
            review.shop_again = post_data.get("shop_again")
            requiredreviewrating_instance.shop_again = review.shop_again
        if (post_data.get("exchange_value")):
            review.exchange_value = post_data.get("exchange_value")
            optionalreviewrating_instance.exchange_value = review.exchange_value
        review.save()
        
        if isinstance(obj, BlogPost):
            blog_category = post_data.get("category")
            bought_category  = None
            bought_category = BlogCategory.objects.get(slug=slugify(blog_category))
            review.bought_category.add(bought_category)

        # the primary key for review will be generated when it is saved
        # and the reviewrating will need to store that primary key
        requiredreviewrating_instance.commentid = review.pk        
        requiredreviewrating_manager.add(requiredreviewrating_instance)
            
        if post_data.get("exchange_value"):
            optionalreviewrating_instance.commentid = review.pk
            optionalreviewrating_manager.add(optionalreviewrating_instance)
        
        comment_was_posted.send(sender=review.__class__, comment=review,
                                request=request)
        notify_emails = split_addresses(settings.COMMENTS_NOTIFICATION_EMAILS)
        if notify_emails:
            subject = _("New comment for: ") + unicode(obj)
            context = {
                "comment": review,
                "comment_url": add_cache_bypass(comment.get_absolute_url()),
                "request": request,
                "obj": obj,
            }
            send_mail_template(subject, "email/comment_notification",
                               settings.DEFAULT_FROM_EMAIL, notify_emails,
                               context, fail_silently=settings.DEBUG)
        return review
开发者ID:saumishr,项目名称:mezzanine,代码行数:84,代码来源:forms.py


示例16: comment

def comment(request, template="generic/comments.html"):
    """
    Handle a ``ThreadedCommentForm`` submission and redirect back to its
    related object.
    """

    post_data = request.POST
    settings.use_editable()
    if settings.COMMENTS_ACCOUNT_REQUIRED:
        if not request.user.is_authenticated():
            # Account required but user isn't authenticated - store
            # their post data in the session and redirect to login.
            request.session["unauthenticated_comment"] = post_data
            error(request, _("You must log in to comment. Please log in or "
                             "sign up, and your comment will be posted."))
            url = "%s?next=%s" % (settings.LOGIN_URL, reverse("comment"))
            return redirect(url)
        elif "unauthenticated_comment" in request.session:
            # User has logged in after post data being stored in the
            # session for an unauthenticated comment post, so use it.
            post_data = request.session.pop("unauthenticated_comment")

    try:
        model = get_model(*post_data["content_type"].split(".", 1))
        obj = model.objects.get(id=post_data["object_pk"])
    except (KeyError, TypeError, AttributeError, ObjectDoesNotExist):
        # Something was missing from the post so abort.
        return HttpResponseRedirect("/")

    form = ThreadedCommentForm(request, obj, post_data)
    if form.is_valid():
        url = obj.get_absolute_url()
        if is_spam(request, form, url):
            return redirect(url)
        comment = form.get_comment_object()
        if request.user.is_authenticated():
            comment.user = request.user
        comment.by_author = request.user == getattr(obj, "user", None)
        comment.ip_address = request.META.get("HTTP_X_FORWARDED_FOR",
                                              request.META["REMOTE_ADDR"])
        comment.replied_to_id = post_data.get("replied_to")
        comment.save()
        comment_was_posted.send(sender=comment.__class__, comment=comment,
                                request=request)
        # Send notification emails.
        comment_url = add_cache_bypass(comment.get_absolute_url())
        #=======================================================================
        # send email to reply or post people,instead of ADMINS
        #=======================================================================
        try:
            from mezzanine.blog.models import BlogPost
            notify_emails = [BlogPost.objects.get(id=comment.object_pk).user.email]
            
            if comment.threadedcomment.replied_to != None:
                other_email = comment.threadedcomment.replied_to.user_email             
                notify_emails += [other_email]
#            print notify_emails
        except:            
            notify_emails = filter(None, [addr.strip() for addr in
                            settings.COMMENTS_NOTIFICATION_EMAILS.split(",")])
        if notify_emails:
            subject = _("New comment for: ") + unicode(obj)
            context = {
                "comment": comment,
                "comment_url": comment_url,
                "request": request,
                "obj": obj,
            }
            send_mail_template(subject, "email/comment_notification",
                               settings.DEFAULT_FROM_EMAIL, notify_emails,
                               context, fail_silently=settings.DEBUG)

        response = HttpResponseRedirect(comment_url)
        # Store commenter's details in a cookie for 90 days.
        cookie_expires = 60 * 60 * 24 * 90
        for field in ThreadedCommentForm.cookie_fields:
            cookie_name = ThreadedCommentForm.cookie_prefix + field
            cookie_value = post_data.get(field, "")
            set_cookie(response, cookie_name, cookie_value, cookie_expires)
        return response
    else:
        # Show errors with stand-alone comment form.
        context = {"obj": obj, "posted_comment_form": form}
        return render(request, template, context)
开发者ID:renwofei423,项目名称:mezzanine,代码行数:84,代码来源:views.py



注:本文中的mezzanine.utils.cache.add_cache_bypass函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python cache.cache_installed函数代码示例发布时间:2022-05-27
下一篇:
Python models.RichTextPage类代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap