2011-01-29 6 views
0

ModelMultipleChoiceFieldからデータを表示しようとしていて、オブジェクトを反復しようとしましたが、私はファンキーな結果を得ています。助けてくれてありがとう!Django ModelMultipleChoiceField:データを反復する

{{ chef.meal }} 

[<Meal: Breakfast>, <Meal: Brunch>] 

レンダリング -

{% for i in chef.meal%} {{i}} {% endfor %} 

をここで

[ < M e a l : B r e a k f a s t > , < M e a l : B r u n c h > ] 

をレンダリングし、私はModelMultipleChoiceFieldが設定されている方法です。

meal = forms.ModelMultipleChoiceField(
     label=_("What is your best meal?"), 
     queryset=Meal.objects.all(), 
             required=True) 

食事モデル:

class Meal(models.Model): 
    name = models.CharField(max_length=10) 

    def __unicode__(self): 
    return "%s" % self.name 

のHttpResponse:

data = {"profile":profile, 
      "chef":chef} 
    return render_to_response(template_name, 
          data, 
          context_instance=RequestContext(request)) 

私は、テンプレートに至るまで 'シェフ' を渡し、その後、シェフオブジェクトから食事を引っ張っています。

+0

食事オブジェクトをテンプレートにどのように送っていますか?コードからHttpResponse行またはrender_to_response linをポストします。 – Neo

+0

上記を追加しました。私はシェフモデルから食事を引っ張っています – Emile

+0

どのようにシェフフォームを生成していますか?modelformまたはforms.Formを使用していますか? – Neo

答えて

0

モデル内でフォームフィールドを使用することはできません。代わりに食事からシェフまで外来の鍵を作ってください。

テンプレートを使用内部の今
class Meal(models.Model): 
    name = models.CharField(max_length=10) 
    chef = models.ForeignKey(Chef) 
    def __unicode__(self): 
     return "%s" % self.name 

{% for meal in chef.meal_set.all %} 
    {{ meal }} 
{% endfor %} 

代わりに外国のフィールドの勿論、シェフと食事モデル間の複数の複数の関係が存在することができます。それに応じてコードを変更します。

+0

ああ、私は実際にシェフオブジェクトのデータをフォームではなく表示しようとしています。私は混乱のために申し訳ありません。 – Emile

+0

'食事'は実際にはフォームフィールドであり、オブジェクトではありません。私はその場合に答えを再投稿します。 – Neo

+0

ありがとう! – Emile