как сделать страницу в Django - PullRequest
0 голосов
/ 25 августа 2009

У меня две модели,

class A(models.Model):

   id = models.AutoField(primary_key=True)
   name = models.CharField(max_length=200)
   type = models.CHarFIeld(max_length=200)
   ..
   ..
   .. 

class B(models.Model):
  a= models.ForeignKey(A)
  state = models.CharField(max_length=200)

теперь, когда я вижу страницу класса A, мне нужна ссылка, которая может показать мне все данные, связанные с b.

ЛЮБЫЕ предложения

Ответы [ 2 ]

1 голос
/ 10 сентября 2009

Я не знаю, как настроить администратора, чтобы обеспечить это для вас, но вы можете довольно легко расширить шаблоны администрирования для вашей модели A и сами предоставить ссылки на страницу администратора модели B .

Согласно инструкциям, вы должны сделать что-то похожее на то, что я описал ниже.

Создайте шаблон 'change_form.html', используя следующее соглашение

[project]/
    templates/
        admin/
            [app name]/
                [model name]/
                    change_form.html

Затем, содержимое вашей change_form, вы можете расширить стандартные шаблоны администратора и настроить для ваших нужд. Например, отобразить список объектов «b» со ссылкой на их страницу администратора.

{% extends "admin/change_form.html" %}

{% block after_field_sets %}
<ul>
{% for b in a.b_set %}
    <li><a href="../../[model b]/{{ b.pk }}/">{{ b }}</a></li>
{% endfor %}
</ul>
{% endblock %}
1 голос
/ 25 августа 2009

Когда вы создаете отношение, на целевом объекте у вас автоматически появляется элемент «set», который позволяет вам перемещать отношения назад (см. документация django ).

Имея это в виду, вы можете использовать в своем шаблоне что-то вроде:

{% for b in a.b_set %}
  <!-- display data related to b -->
{% endfor %}
...