如何将django模型字段传递给函数并将变量返回到上下文以便在模板中使用

时间:2018-04-29 06:10:13

标签: python django django-models

我从表单中的用户收集了一些值,这些值保存到数据库中。我想获取这些值,在函数中对它们执行操作,然后返回它们,以便我可以将它们与其他上下文一起使用。

这是我的模特:

#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 :(得分:2)

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)