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

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

问题描述:

我期待在使用inlineformset_factory的模板中显示模型属性。这甚至有可能吗?我还没有遇到任何例子。模型属性可以显示在模板中

我想在我的模板

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) 

在我的模板显示 'json_data',我有这一点,但我没有看到任何

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

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

如果您使用form.instance.json_data它将工作。

+0

很酷,谢谢。我不知道这个例子。 – iJK 2010-08-21 16:23:41

+0

我一直在寻找这个答案无处不在!非常感谢你,WoLpH! – Bobort 2013-01-25 14:58:27