Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Could not parse the remainder:

I saw many questions about this error, but all are distincts and not apply to me, so...

My models.py

# Category
class Category(models.Model):
category_name = models.CharField(max_length=64)

def __str__(self):
    return f"{self.category_name}"
# Item
class Item(models.Model):
item_name = models.CharField(max_length=64)
category = models.ForeignKey(Category, on_delete= models.CASCADE, related_name="items_by_category")
price_small = models.DecimalField(help_text="Price in U$S",max_digits=6, decimal_places=2, default= 0)
price_large = models.DecimalField(help_text="Price in U$S",max_digits=6, decimal_places=2, default= 0)
nradd = models.IntegerField(default=0)

def __str__(self):
    return f"{self.category} {self.item_name} - Qty.of Adds: {self.nradd} - Price Small: {self.price_small} - Price Large: {self.price_large}"

My views.py

def menu(request):
products = list(Item.objects.all().values().order_by('category'))
categories = list(Category.objects.all().prefetch_related('items_by_category'))
extras = list(Extra.objects.filter(category="T"))
subsextras = list(Extra.objects.filter(category="S"))
context = {
        'Products' : products,
        'Categories': categories,
        'Extras' : extras,
        'Subextras' : subsextras
}

return render(request, 'orders/menu.html',context)

First, I'm trying to simply list the categories with the items who belongs to:

My menu.html:

{% extends 'orders/base.html' %}
{% load static %}

{% block title %}
Menu
{% endblock %}

{% block body %}

<ul>
{% for cate in Categories %}
    <li>{{ cate.category_name }}</li>
    <ul>
        {{% for myitem in cate.items_by_category.all %}}
            <li>{{ myitem.item_name }}</li>
        {{% endfor %}}
    </ul>
{% endfor %}
</ul>

{% endblock %}

the error appears in the line:

{{% for myitem in cate.items_by_category.all %}}

Same commands in the shell goes well:

cate = Category.objects.get(category_name="Salads")
cate.items_by_category.all()

Thanks in advance,

like image 870
edu Avatar asked Jan 30 '26 22:01

edu


1 Answers

It's about Template Language.

Variables look like this: {{ variable }}.

Filters look like this: {{ name|lower }}.

Tags look like this: {% tag %}.

To comment-out part of a line in a template, use the comment syntax: {# #}


There is no such thing as {{% %}}

So, instead of

{{% for myitem in cate.items_by_category.all %}}

You should use

{% for myitem in cate.items_by_category.all %}

Reference: https://docs.djangoproject.com/en/3.0/ref/templates/language/

like image 174
Jorge Mauro Avatar answered Feb 02 '26 13:02

Jorge Mauro



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!