型号:
class Specialization(models.Model):
SPECIALIZATION_TYPE = (
('S','Specialty'),
('Ss','Sub-specialty')
)
specialization_desc = models.CharField('Specialization',max_length=50,unique=True)
specialization_type = models.CharField(max_length=2, choices=SPECIALIZATION_TYPE)
active = models.BooleanField('Active',default=True)
def __unicode__(self):
return self.specialization_desc
class Person(models.Model):
GENDER = (
('M','Male'),
('F','Female'),
)
first_name = models.CharField("First Name", max_length=50)
last_name = models.CharField("Last Name",max_length=50)
middle_name = models.CharField("Middle Name", max_length=50, blank=True)
specialization_id = models.ManyToManyField(Specialization, 模板:
{% for per in person_list%}
<tr>
<td>{{ per }}</td>
{% for spec in per.specialization_id.all %}
<td>{{ spec }}</td>
{% endfor %}
</tr>
{% endfor %}查看:
p = Person.objects.all()
return p我想看看这样的桌子:
FullName | Specialization |
My Name | Programming, Web Development |我要去拿这个
FullName | Specialization |
My Name | Programming | Web Development对我来说似乎是死胡同。想法?
发布于 2014-01-21 07:40:44
我不明白你的问题。
您是否在模板中获得了专门化,只需要以不同的方式显示它们?
{% for person in person_list%}
<tr>
<td>{{ person }}</td>
<td>{{ person.specialization_id.all|join:", " }}</td>
</tr>
{% endfor %}此外,不要将外键和与_id的多对多关系作为后缀.
对于外键,Django已经为您做了,所以在DB中,您将使用field_id_id。
对于多到多的对象,创建了一个单独的表,而在DB中的任何地方都没有创建specialization_id。使用更详细的名称,比如specializations。
https://stackoverflow.com/questions/21251074
复制相似问题