我使用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,)
...
卡模型形式:
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 >
在每个单选按钮的标签中,我需要显示事件模型的两个字段值“ title”和“ date”,这是Card的ForeignKey。现在,标签仅包含“标题”值。最好的方法是什么?我尝试了{{cardform.instance.event.date}},但是它不起作用。
我找到了解决方案。
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句