gpt4 book ai didi

python - django - 将参数从模板传递到 models.py 的函数

转载 作者:行者123 更新时间:2023-11-28 16:43:51 25 4
gpt4 key购买 nike

我有一个名为 mymodel 的模型,它有一个属性 getp,但这需要一个参数(请求):

class Mymodel(models.Model):
...
def getp(self, request):
return "STH"

.从 View 中我将请求和一个模型传递给模板:

return render_to_response('x.html', {
'mymodel': Mymodel.objects.get(id=17),
'request': request
}, context_instance = RequestContext(request))

,以及从模板文件中是否有任何方法可以使用请求参数调用 getp 函数?我知道不应该这样使用,但我的问题是理论上的而不是实际的。

这个问题有什么解决方法吗?

谢谢。

最佳答案

似乎是重复的 How to use method parameters in a Django template?

一种解决方案是将方法的结果传递给模板。像这样的东西:

object = Mymodel.objects.get(id=17)
return render_to_response('x.html', {
'mymodel': object,
'mymodel_getp': object.getp(request),
'request': request
}, context_instance = RequestContext(request))

其他解决方案是编写自定义模板标签:

@register.simple_tag(name="model_getp", takes_context=True)
def model_getp(context, object=None):
return object.getp(context)

然后在模板中:

{% model_getp mymodel %}

关于python - django - 将参数从模板传递到 models.py 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15981695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com