模型属性是否可以显示在模板中

时间:2010-08-21 02:15:17

标签: django django-models

我希望在模板中显示一个模型属性,该模板使用inlineformset_factory。这甚至可能吗?我没有遇到任何例子。

我想在我的模板中显示'json_data'

class RecipeIngredient(models.Model):
    recipe = models.ForeignKey(Recipe)
    ingredient = models.ForeignKey(Ingredient)
    serving_size = models.ForeignKey(ServingSize)
    quantity = models.IntegerField()
    order = models.IntegerField()
    created = models.DateTimeField(auto_now_add = True)
    updated = models.DateTimeField(auto_now = True)

    def _get_json_data(self):
        return u'%s %s' % (self.id, self.ingredient.name)

    json_data = property(_get_json_data)
在views.py中

RecipeIngredientFormSet = inlineformset_factory(models.Recipe, models.RecipeIngredient, form=forms.RecipeIngredientForm, extra=0)
recipeIngredients = RecipeIngredientFormSet(instance = objRecipe)

在我的模板中,我有这个,但我没有看到任何内容

{% for form in recipeIngredients %}
{{ form.json_data }}
{% endfor %}

1 个答案:

答案 0 :(得分:8)

是的,您可以访问属性,就像您可以访问任何其他模型变量一样。但是你在这里打印一个表单,而不是一个实例。

如果您使用form.instance.json_data,它将有效。