Найти - Пользователи
Полная версия: ForeignKey
Начало » Django » ForeignKey
1
offline
Хотел сделать простые новости, с заголовком, контентом и автором. Но автора брать из отдельной таблицы юзеров. Создал вот такие модели:


class Users(models.Model):
name = models.CharField(maxlength=30)
def __str__(self):
return self.name

class News(models.Model):
title = models.CharField(maxlength=30)
content = models.TextField()
author = models.ForeignKey('Users')
def __str__(self):
return self.title


В админке всё прекрасно работает. создаю новость, выбираю автора, всё красиво.. Но как теперь в шаблоне вывести имя автора новости, а не его id?

Вот код вида

def my_News(request):
news = News.objects.all()
return render_to_response('news.html',{'news':news})


{% for row in news %}
{{ row.title }} {{ row.content }}
{% endfor %}

Вот тут хотелось бы что то типа {{ row.author }}. Как это можно осуществить?
offline
Гы, действительно выводит то что надо.. а я думал ID выведет..

Насчёт стандартных юзеров я пока ещё до этого не дошёл.. Только начал изучать django.
Mkdir
offline
Гы, действительно выводит то что надо.. а я думал ID выведет..
;)
offline
Ну что бы тема не была совсем бессмысленной, изменим наш ForeignKey на ManyToManyField. Оттуда то точно {[ row.author }} не выводит ничего.

Как достать всех авторов которые относятся к новости?
Александр Кошелев
{% for author in news_entry.authors.all %}
{{author}}
{% endfor %}
authors - ManyToManyField

не зыбывай ситать документацию. она не зря написана.
http://www.djangoproject.com/documentation/models/many_to_many/
offline
lorien, я пару раз перечитывал, проблема в том что там написано для интерактивного шела, а как это в темплейте отобразить - нету.. Для тех кто уже долго польуется django это наверное не проблема, но я пока не могу сам додуматься как исходя из того что в шеле сделать такое же в темплейте, но попробую сегодня ещё разок прочитать и сделать все примеры.. Ждите новых вопросов ))

Daevaorn
Спасибо, помогло.
crash
В большинстве случаев доступ к обьектам в шаблоне ничем не отличается от шелла или чистого питон-кода.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB