Django使用JSON获取模型方法的价值

时间:2012-08-08 11:30:39

标签: javascript django json

如果所选产品在检查此方法的方法上返回true,我目前正在尝试使用javascript来显示额外的表单字段。虽然我有表单选择的onchange部分设置我正在努力实际访问产品方法。我假设我必须使用我没有经验的json。我希望做以下操作,使用if语句中的方法返回。我现在尝试使用的代码是(我意识到它只是显示一个警报atm但我的首要任务是让它工作):

function openingCheck(optionValue){
    {% check_opening_date as json %}
    var checkOpeningDateJSON = {{json|safe}};

    if(checkOpeningDateJSON)
        alert(optionValue);

};

使用:

@register.tag(name="check_opening_date")
 def check_opening_date(parser, token): 
"""return whether the product should show the opening date or not"""

product = Product.objects.get(pk=productID)

return serializers.serialize('json',product.show_opening_date())

我遇到的问题是我不确定如何将optionValue传递给check_opening_date函数以及如何返回product.show_opening_date()的值。

任何提示将不胜感激。

1 个答案:

答案 0 :(得分:0)

有两种方法。

  1. 渲染页面时,将show_opening_date()的结果与表单选择一起保存。这意味着对于列出的每个产品,您可以在某处创建相应的隐藏输入,或将结果作为属性保存在选择或其他内容中。选择产品后,您只需使用javascript检查此隐藏输入或属性的值。加载后服务器不需要与服务器交互。 (对所有服务器都有一个请求)

  2. 或者,您只需显示产品即可。选择一个时,使用ajax将服务器与产品的ID联系。服务器运行product.show_opening_date()并返回带有结果的json。 (对服务器有很多请求;最初的,每次用户选择产品时)

  3. 你所拥有的东西没有意义。请记住,模板(以及所有模板变量和模板标签)在呈现页面时进行组装,因此它们没有执行任何javascript概念(或onchange事件等)。您似乎对模板标签的概念感到有些困惑。这些应该用于模板逻辑,以显示已在视图中聚合的信息(通常 - 它不是一成不变的)。