Context 不会发送到 render_to_string Python/Django。

huangapple go评论104阅读模式
英文:

Context doesn`t send to the render_to_string Python/Django

问题

抱歉,我无法执行您的请求。如果您需要任何翻译或其他帮助,请随时提问。

英文:

hi guys I have a Django view that I want to filter my products with ajax(Js) and I think u know that I need to show the products to template too! Im using render to string Function which gets a template name and a context(dictionary) and return the string of the template , now my problem is my , idk why but my context is not sending to the template , if u have ever used Pycharm u know that for example when u map a template , if every thing is ok it will shows the template icon in the left near the line number! and every things is ok for me but still context doesnt send Context 不会发送到 render_to_string Python/Django。 , i should say that I have a for loop in my template and I think u Know that too , when u click on your for loop context it will move you to the context in view but for me it shows "Cannot find the Declaration" ill write my codes , and ill be thankful if u guys help me Context 不会发送到 render_to_string Python/Django。 ( and I have tried context: {"asd": asd} , {"asd": asd} every methods for a

template:

{% for product in products %}
    something...
{% empty %}
    if products doesnt exist...
{% endfor %}


views:

def filter_products(request):
    if request.method == "GET":
        categories = request.GET.getlist("category")
        products = Product.objects.all().order_by("-created_at").distinct()

        if len(categories) > 0:
            products = Product.objects.filter(category__name=categories).order_by("-     created_at").distinct()

        data = render_to_string("core/async/product-list.html", context={"products": products})
        print(data)
        return JsonResponse({"data": data, "bool": True})
    return redirect("home_app:main")

答案1

得分: 0

我自己解决了这个问题 Context 不会发送到 render_to_string Python/Django。 ,问题是产品没有发送到上下文(正如我之前所说的),为什么它不发送呢?因为在我有一个过滤查询集的products变量中,我给了category__name过滤器的categories,而category__name只接收一个而不是元组列表等等,如果你注意到,我的categories变量是一个request.GET.getlist!它获取了一个列表,为了将列表传递给过滤器,你必须这样做:在category名称后面添加"__in"(在category名称之后添加“__in”),就是这样!

products = Product.objects.filter(category__name__in=categories).order_by("-created_at").distinct()

英文:

Guys i solved the problem myself Context 不会发送到 render_to_string Python/Django。 , and the problem was the products doesnt send to the context (as i said before) and why it doesnt send? because in products variable that i have a filter queryset i gave categories to the category__name filter , and category__name just receive one thing not tuple list and ... , and if u noticed , my categories variable is a request.GET.getlist ! its getting list , and for giving a list to a filter u have to do this :
category__name__in (add an "__in" after the category name) and just this !

products = Product.objects.filter(category__name__in=categories).order_by("-created_at").distinct()

huangapple
  • 本文由 发表于 2023年8月11日 02:47:03
  • 转载请务必保留本文链接:https://go.coder-hub.com/76878567.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定