Django m2m ЧЕРЕЗ дополнительные ссылки на поля в шаблоне ++ - PullRequest
2 голосов
/ 18 августа 2010

У меня проблема со ссылками на дополнительные поля моей модели "THROUGH" m2m.Я могу ссылаться на связанную модель (Пользователь), но не на дополнительную информацию о сквозной модели (listuser)

Определение моей модели --- Пользовательская модель - это встроенная пользовательская модель без изменений.

class joblist(models.Model):
    userdetail = models.ManyToManyField(User,through='userextra')

class userextra(models.Model):
    joblist = models.ForeignKey(joblist)
    user = models.ForeignKey(User)
    comments= models.CharField(max_length=16384, blank=True, null=True)

В моем шаблоне -----

{% for row in joblist %}
html here
{% for item in row.userdetail.all  %}
{{item.username}}-"I want to print comments here"
{% endfor %}
{% endfor %}

Я пробовал {{item.userextra.comments}} {{item.comments}} {{item.douser.comments}}

Итак, я получаю детали из модели "Пользователь", но я не получаюдополнительные поля в модели userextra ????

Любая помощь приветствуется .... N

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

Не уверен, если вам все еще нужен ответ ... Я новичок в Python / Django, но я искал то же самое, и ваш вопрос имел высокий рейтинг в Google, когда я искал, поэтому подумал, что отвечу на него в случае кто-то еще ищет.

Вот что мне удалось найти: вместо того, чтобы перебрать row.userdetail.all, попробуйте перебрать row.userextra_set.all.

{% for row in joblist %}
html here
{% for item in row.userextra_set.all %}
{{ item.user.username }} - {{ item.comments }}
{% endfor %}
{% endfor %}
0 голосов
/ 18 августа 2010

У вас больше возможностей для обратного смещения в представлении, чем у шаблона.

Итак, хотя это неэффективное решение, я бы предложил напрямую запросить сквозную модель в представлении, а затем использовать то, что вы получили.чтобы временно аннотировать элементы в строках вашего списка заданий соответствующим образом, чтобы вы могли определенно, чисто, выполнить row.foo.bar или item.baz.boof и т. д., затем передать этот аннотированный набор результатов вручную вшаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...