Поле ManyToMany возвращает None вместо того, чтобы дать мне данные

Я разрабатываю приложение для управления рестораном на django. Когда я пытаюсь распечатать заказанные клиентом товары, я получаю

testapp.Menu.None testapp.Menu.None

Только многие фидлы не отображаются. Другие работают нормально.

Вот мои модели:

categories=(
    ('Starters','Starters'),
    ('Maincourse','Maincourse'),
    ('Breakfast','Breakfast'),
    ('Desserts','Desserts'),
    ('Beverages','Beverages')
)
class Menu(models.Model):

    name=models.CharField(max_length=200,null=True)
    category=models.CharField(max_length=200,null=True,choices=categories)
    price=models.IntegerField(null=True)
    date_created=models.DateTimeField(auto_now_add=True,null=True)

    def __str__(self):
        return self.name

class Customer(models.Model):

    name=models.CharField(max_length=200)
    email=models.CharField(max_length=200)
    phone=models.IntegerField()
    address=models.TextField(max_length=200)
    date_created=models.DateTimeField(auto_now_add=True,null=True)

    def __str__(self):
        return self.name

class Orders(models.Model):
    status=(
        ('Out of delivery','Out of delivery'),
        ('Pending','Pending'),
        ('Order recieved','Order recieved'),
    )
    customer=models.ForeignKey(Customer,null=True,on_delete=models.SET_NULL)
    items=models.ManyToManyField(Menu)
    status=models.CharField(max_length=200,choices=status)
    date_created=models.DateTimeField(auto_now_add=True,null=True)

Это мой файл view.py

def customer_info(request,pk):
    customer=Customer.objects.get(id=pk)
    order=customer.orders_set.all()
    
    context={
        'customer':customer,
        'order':order

    }
    return render(request,'customer_info.html',context)

Мой html-файл

<table>
        <tr>
            {{customer.name}}
            <br>
            {% for order in order %}
            {{ order.items }}
            {% endfor %}
        </tr>
    </table>

Пожалуйста, помогите мне исправить это.

{% for order in order %} будет работать некорректно.

Измените свой взгляд:

def customer_info(request,pk):
    customer = Customer.objects.get(id=pk)
    orders = customer.orders_set.all()
    
    context={
        'customer': customer,
        'orders': orders
    }
    return render(request,'customer_info.html',context)

А ваш шаблон:

<table>
    <tr>
        <td>Name: {{customer.name}}</td>
        <td>
            Orders:
            {% for order in orders %}
                {{ order.items.all }}
            {% endfor %}
        </td>
    </tr>
</table>
Вернуться на верх