Как вернуть несколько значений одного метода в шаблоне в django

#django #django-models #django-views #django-templates

#django #django-модели #django-просмотры #django-шаблоны

Вопрос:

Как вернуть несколько значений одного метода в шаблоне в django

 class Invoice(models.Model):
    client = models.ForeignKey(Client, on_delete=models.PROTECT)
    price = models.DecimalField(default=0, max_digits=20, decimal_places=2)
    quantity = models.DecimalField(default=0, max_digits=20, decimal_places=2)
    
    def total(self):
        x = self.price
        y = self.quantity
        return x, y
 

Вид :

 def Invoice(request, pk):
    invoice = Invoice.objects.get(id=pk)
    context = {'invoice':invoice}
    return render(request, 'sales/invoice.html', context)
 

Как реализовать это в Html? {{ счет }}

Ответ №1:

Просто передайте в контексте функции просмотра все значения в шаблон, который вам нужно отобразить

 def Invoice(request, pk):
invoice = Invoice.objects.get(id=pk)
total = Invoce.total(x,y)
context = {'invoice':invoice,
           'total': total}
return render(request, 'sales/invoice.html', context)
 

обратите внимание, что total будет кортежем

Комментарии:

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

2. спасибо, я получил кортеж, но все та же проблема снова с кортежем, как показать его в шаблоне!

3. если нужно показать только total, вы можете вернуть total из функции или, если вам нужно показать x, y отдельно, вы можете отправить отдельные значения, такие как total [0], total [1]