2010-08-21 6 views
6

Ich möchte eine Modelleigenschaft in einer Vorlage anzeigen, die eine inlineformset_factory verwendet. Ist das überhaupt möglich? Ich habe kein Beispiel gefunden.Können Modelleigenschaften in einer Vorlage angezeigt werden

I 'json_data' in meiner Vorlage

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) 

in views.py

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

In meiner Vorlage anzuzeigen versuchen, habe ich das, aber ich sehe nichts

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

Antwort

7

Ja, Sie können auf Eigenschaften zugreifen, als ob Sie auf eine andere Modellvariable zugreifen können. Aber Sie drucken hier ein Formular, keine Instanz.

Wenn Sie form.instance.json_data verwenden, wird es funktionieren.

+0

cool, danke. Ich wusste nichts von der Instanz. – iJK

+0

Ich habe diese Antwort überall gesucht! Danke sehr, sehr, WoLpH! – Bobort