Найти - Пользователи
Полная версия: один-ко-многим
Начало » Django » один-ко-многим
1
Moroznui
никак не могу понять, где я не прав.
models.py:
class posts(models.Model):
topic=models.CharField(max_length=50)
body=models.TextField()
datetime=models.DateTimeField()
name=models.ForeignKey(users)
def __unicode__(self):
return self.topic
class comments(models.Model):
topic=models.ForeignKey(posts)
name=models.ForeignKey(users)
datetime=models.DateTimeField()
body=models.TextField()
views.py:
def post_detail(request, post_id):
post_data = posts.objects.get(pk=post_id)
#topic_id = topic.posts
comment_data = post_id.comments_set.all()
return render_to_response('details.html',{'post_data':post_data,})
Ошибка:
Exception Type: AttributeError
Exception Value: ‘unicode’ object has no attribute ‘comments_set’

где не прав?
dissdoc
Во-первых, посмотрите что такое post_id )
Moroznui
Задача такая - вытащить все комменты к посту.
post_id - это примари кей поста.
dissdoc
post = Posts.objects.get(id=post_id)
comments = post.comments_set.all()
А так?
quadright
Подскажите, а как вытащить все посты с определенным комментарием? Скажем с комментариями конкретного пользователя?
FishHook
quadright
Подскажите, а как вытащить все посты с определенным комментарием? Скажем с комментариями конкретного пользователя?
Должен сработать просто такой запрос
Post.objects.filter(comments__user=user)
FishHook
Moroznui
class posts(models.Model):
Вы почему игнорируете PEP8?
quadright
FishHook
Post.objects.filter(comments__user=user)
Благодарю за ответ.

А если в модели комментариев есть поле “is_active” с двумя возможными значения “0” и “1”. И мне нужно отфильтровать комментарии конкретного пользователя с is_active=1. Такое возможно средствами ОРМ?
FishHook
Вроде же несложно догадаться
Post.objects.filter(comments__user=user, comments__is_active=1)
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