2016-09-29 2 views
0

私はDjango 1.8.14を使用します。。フォームオブジェクトからテンプレートの外部キーフィールドにアクセスする

class Event(models.Model): 
    title = models.CharField(max_length=255,) 
    date = models.DateTimeField() 
    ... 
    def __unicode__(self): 
     return self.title 

class Card(models.Model):  
    user = models.ForeignKey(MyUser, related_name="user") 
    event = models.ForeignKey(Event,) 
    ... 

カードのモデルフォーム::私は2つのモデルを持っている

class CardForm(forms.ModelForm): 
    def __init__(self, *args, **kwargs): 
     super(CardForm, self).__init__(*args, **kwargs) 
     self.fields['event'].empty_label = None 

class Meta: 
    model = Card 
    fields = ('event',) 
    widgets = {'event': forms.RadioSelect, } 

私はこのようなフォームをレンダリング:私は両方のフィールドの値を表示する必要があり、各ラジオボタンのラベルで

<form method="POST"> 
    {% csrf_token %} 
    {% for choice in cardform.event %} 
     {{ choice.tag }} 
     {{ choice.choice_label }} 
    {% endfor %} 
</form > 

カードのForeignKeyであるイベントモデルの "title"と "date"。ラベルには「タイトル」の値のみが含まれます。それを行う最善の方法は何ですか? {{cardform.instance.event.date}}を試しましたが、動作しません。

答えて

0

私は解決策を見つけました。

class CardForm(forms.ModelForm): 
    def __init__(self, *args, **kwargs): 
     super(CardForm, self).__init__(*args, **kwargs)   
     self.fields['event'].label_from_instance = lambda obj: "%s %s" % (obj.title, obj.date) 
関連する問題