Форум сайта python.su
Создаю мини-гостевую:
Модель:
class MessLevelOne(models.Model):
user = models.CharField(max_length=30)
datetime = models.DateTimeField()
message_text = models.CharField(max_length=400)
def __unicode__(self):
return '%s %s %s' % (self.user, self.datetime, self.message_text)
class MessLevelTwo(models.Model):
level_two_user = models.CharField(max_length=30)
level_two_datetime = models.DateTimeField()
level_two_message_text = models.CharField(max_length=400)
level_one = models.ForeignKey('MessLevelOne',related_name='level_one')
def __unicode__(self):
return '%s %s %s %s' % (self.level_two_user, self.level_two_datetime, self.level_two_message_text, self.level_one)
def gbook(request):
mess_level_one = MessLevelOne.objects.all()
return render_to_response('standart/guestbook.html', locals(),context_instance=RequestContext(request))
{% for message in mess_level_one %}
<table bgcolor=orange>
<tr>
<td bgcolor=white> {{ message.id }}</td>
<td> {{ message.user }}</td>
<td>{{ message.datetime }}</td>
<td>{{ message.message_text }}</td>
<td>
[b] {% for mess in message.level_one.select_related %} [/b]
<table bgcolor=red>
<tr>
<td bgcolor=white> {{ forloop.parent.counter }}</td>
<td bgcolor=red> {{ mess.to_level_one_theme }} </td>
<td bgcolor=red>{{ mess.level_two_message_text }}</td>
</tr>
</table>
{% endfor %}
</td>
<td><a href=",,,"}">ответить</a></td>
</tr>
</table>
{% endfor %}
Отредактировано (Апрель 26, 2011 17:15:39)
Офлайн
Читайте внимательней документацию
http://docs.djangoproject.com/en/1.3/topics/db/queries/#following-relationships-backward
http://docs.djangoproject.com/en/1.3/ref/models/querysets/#select-related
Вам нужна первая ссылка. select_related для другого
Офлайн
Разобрался, вот нужная ссылка.
http://docs.djangoproject.com/en/1.3/topics/templates/#accessing-method-calls
Ps. Если в качестве базы данных вы используете MySQL, не забудьте прописать в /etc/my.cnf
[mysqld]
default-storage-engine=InnoDB
Отредактировано (Апрель 27, 2011 09:49:13)
Офлайн