有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用Ajax的java Django消息

我希望我的消息不需要使用Ajax刷新就可以显示出来。虽然我发现了一个类似的问题

Django - How to show messages under ajax function

但它似乎不起作用(我遵循了主要答案中的说明)。我得到一个错误,说:

if settings.DEBUG and request.META.get('REMOTE_ADDR') in settings.INTERNAL_IPS:
AttributeError: 'RequestContext' object has no attribute 'META'

因此,基本上我正在向我的购物车添加一个产品,它可以完美地使用ajax,但我还想添加一条消息,表明该产品已添加到购物车中,而无需刷新页面

这是我的代码:

观点。py


class ItemDetailView(DetailView):
    model = Product
    template_name = "shop/product.html"

    def get_context_data(self, *args, **kwargs):
        context = super().get_context_data(*args, **kwargs)

        try:
            data = cartData(self.request)
            counterCartItems = data['counterCartItems']
            cartItems = data['cartItems']
        except:
            counterCartItems = 0

        context['counterCartItems'] = counterCartItems
        categoryId = Category.objects.get(name=self.object.category.name)
        recProducts = Product.objects.filter(category=categoryId)
        context['recProducts'] = recProducts[:4]
        return context

def render_to_json(request, data):
    return HttpResponse(
        json.dumps(data, ensure_ascii=False),
        mimetype=request.is_ajax() and "application/json" or "text/html"
    )

def addToCart(request):
    ...
        data = {
            'msg': render_to_string('shop/messages.html', {}, RequestContext(request)),
        }

        return render_to_json(request, data) # Sending an success response

    return HttpResponse(order.get_cart_items)

基本的java脚本。html:

function showPopupMessage(content) {
    var elMessages = $('#popup-messages-content');
    if (elMessages.length && content) {
        elMessages.html(content);
    }
  }


留言。html

{% if messages %}
  {% for message in messages %}
    <li id="msg" {% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
  {% endfor %}
{% endif %}

共 (0) 个答案