Как передать поле модели django в функцию и вернуть переменные в контекст для использования в шаблоне - PullRequest
0 голосов
/ 29 апреля 2018

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

Вот моя модель:

#models.py file
class MyModel(models.Model):
    varA = models.PositiveIntegerField()
    varB = models.PositiveIntegerField()
    varC = models.PositiveIntegerField()

А вот внешняя функция, которую я использую:

#makecalc.py
def MakeCalc(varA, varB, varC):
    #simplified from what I am actually doing
    varD = varA*varB**varC 
    varE = varA+varB+varC
    return varD, varE

А вот файл views.py:

#views.py file
from .makecalcs import MakeCalc
class MySummary(DetailView):
    model = MyModel

    def get_vars(self):
        varD, varE = MakeCalc(varA, varB, varC) #Am I passing this correctly?
        return varD, varE #How do I send these to context?

И, наконец, HTML:

<p> you input: {{ MyModel.varA }}</p>
<p> you input:{{ MyModel.varB }}</p>
<p> you input:{{ MyModel.varC }}</p>
<p> I output:{{ varD }}</p> #how do I call this?
<p> you input:{{ varE }}</p> #how do I call this?

Итак, мой вопрос в том, как мне добавить varD, varE к контексту, чтобы я мог использовать их вместе с varA, varB и varC из модели?

1 Ответ

0 голосов
/ 29 апреля 2018

Добавьте к вашему виду метод get_context_data () , например:

def get_context_data(self, **kwargs):
    context = {}
    context['your_custom_var'] = 'your_custom_value'
    return super(MySummary, self).get_context_data(**context)
...