вытягивание рассчитанного поля в шаблон не работает с DISTINCT () - PullRequest
1 голос
/ 17 июня 2011

У моей модели есть def, который возвращает вычисленное поле. В моем шаблоне я отображаю поля моей модели, и мое расчетное поле тоже отображается нормально.

Но когда я использую Different () в наборе запросов, тогда вычисляемое по умолчанию поле больше не появляется в шаблоне. Почему?

Другой вопрос заключается в том, что внешние ключи теперь отображаются как их идентификаторы, а не как их юникод.

Как получить отображаемое вычисленное поле, в котором нет идентификаторов, а есть обычный юникод? Возможно ли это с использованием Different ()?

models.py

@property
def calculated_total(self):
    aggregated_cost = sum([m.total for m in Fee.objects.filter(contract=self.contract,grouping=self.grouping,\
                        party_incurring_fee=self.party_incurring_fee,\
                        party_paying_fee=self.party_paying_fee)])
    return aggregated_cost

views.py

calculated_subtotal_queryset = Fee.objects.values('party_incurring_fee', 'party_paying_fee', 'grouping').distinct()

context_dict = {
    'Subtotal' : calculated_subtotal_queryset,
}
return render_to_response('contract.html', context_dict)

contract.html

                {% for s in Subtotal %}
                <tr>
                    <td>{{ s.calculated_total }}</td>

1 Ответ

1 голос
/ 17 июня 2011

В представлении вы передаете ValuesQuerySet шаблону, поэтому цикл в вашем шаблоне получает словари вместо обычного набора запросов, содержащего экземпляры модели.Я не понимаю ваш второй вопрос, но, скорее всего, он снова связан с ValuesQuerySet.

...