Найти - Пользователи
Полная версия: Проблема с пониманием работы Django(или Python в общем).
Начало » Django » Проблема с пониманием работы Django(или Python в общем).
1
inlanger
Задача такая - есть пользователи, есть их профили, есть комментарии. Есть блок “последние комментарии”. Нужно в комментарии отобразить аватарку юзера.
Всё работает, всё хорошо.
Модель комментов:
class Comment(models.Model):   
user = models.ForeignKey(User)
comment = models.TextField()
timestamp = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ("-timestamp",)
app_label = models.CharField(max_length=20)
id_of = models.PositiveIntegerField(max_length=10)
rating_value = models.IntegerField(max_length=4)
Есть функция получения последних комментов:
def get_last_comments(count=3):
from comments.models import Comment
last_comments = Comment.objects.order_by('-id')[:count]
return last_comments
По дизайну вывод последних комментариев выглядит так: http://awesomescreenshot.com/088agvl76
Во вьюхе передаю объект, полученный из get_last_comments() как last_comments, и вывожу:
<h4>Последние коментарии</h4>
{% if last_comments %}
{% for comment in last_comments %}
<div class="comment">
<img src="/static/images/trash/face.jpg" width="42" height="42" alt="" />
<h6>{{ comment.user }}</h6>
{{ comment.timestamp|date:"H:i" }} | {{ comment.timestamp|date:"d.m.Y" }}
<p>
{{ comment.comment }}
</p>
<a class="more_info rounded2" href="#">Подробнее</a>
</div>
{% endfor %}
{% endif %}
Теперь вопрос, как мне в шаблон передать аватарку юзера из его профиля, который подключен в AUTH_PROFILE_MODULE? На каком этапе это вообще делать? Да и не только аватарку, а вообще любые данные к каждому элементу объекта, который я получаю в результате get_last_comments()?
ziro
http://docs.djangoproject.com/en/dev/topics/auth/#django.contrib.auth.models.User.get_profile - работает на любом этапе.
Александр Кошелев
get_profile является не очень хорошим способом получения профиля.

Если нет других препятствий, то имеет смысл модель комментария (или любую другую, которая должна быть завязана на пользователя) сразу привязывать к профилю, а не к модели User. Тогда можно будут расширенную информацию по пользователе получать через просто select_realted.
inlanger
Я знаю про get_profile(), но я не могу понять на каком этапе мне его использовать, что-бы каждый коммент получил профиль своего юзера. И эта проблема не завязана на профилях, она у меня возникла в нескольких местах, профили я привел как пример, с которым точно многие сталкивались.

По select_realted - у меня комментарии универсальные на сайте, то есть, я их делал так, что-бы можно было с минимумом кода подключить в к любому приложению. Из-за этого у меня таблица комментариев не связана с другими таблицами по ForeignKey, а только содержит инфу о имени приложения и уникального_id_в_этом_приложении.
zayass
{{ comment.user.get_profile }} ?
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