Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 12, 2010 13:31:07

Moroznui
От:
Зарегистрирован: 2010-10-12
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

один-ко-многим

никак не могу понять, где я не прав.
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’

где не прав?



Офлайн

#2 Окт. 12, 2010 13:38:49

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

один-ко-многим

Во-первых, посмотрите что такое post_id )



Офлайн

#3 Окт. 12, 2010 13:47:30

Moroznui
От:
Зарегистрирован: 2010-10-12
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

один-ко-многим

Задача такая - вытащить все комменты к посту.
post_id - это примари кей поста.



Офлайн

#4 Окт. 12, 2010 14:00:34

dissdoc
От:
Зарегистрирован: 2009-12-12
Сообщения: 273
Репутация: +  0  -
Профиль   Отправить e-mail  

один-ко-многим

post = Posts.objects.get(id=post_id)
comments = post.comments_set.all()
А так?



Отредактировано (Окт. 12, 2010 14:01:06)

Офлайн

#5 Май 7, 2015 06:23:04

quadright
Зарегистрирован: 2013-07-26
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

один-ко-многим

Подскажите, а как вытащить все посты с определенным комментарием? Скажем с комментариями конкретного пользователя?

Офлайн

#6 Май 7, 2015 08:27:05

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

один-ко-многим

quadright
Подскажите, а как вытащить все посты с определенным комментарием? Скажем с комментариями конкретного пользователя?
Должен сработать просто такой запрос
Post.objects.filter(comments__user=user)



Офлайн

#7 Май 7, 2015 08:28:03

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

один-ко-многим

Moroznui
class posts(models.Model):
Вы почему игнорируете PEP8?



Офлайн

#8 Май 7, 2015 09:26:35

quadright
Зарегистрирован: 2013-07-26
Сообщения: 75
Репутация: +  1  -
Профиль   Отправить e-mail  

один-ко-многим

FishHook
Post.objects.filter(comments__user=user)
Благодарю за ответ.

А если в модели комментариев есть поле “is_active” с двумя возможными значения “0” и “1”. И мне нужно отфильтровать комментарии конкретного пользователя с is_active=1. Такое возможно средствами ОРМ?

Офлайн

#9 Май 7, 2015 09:31:30

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

один-ко-многим

Вроде же несложно догадаться

Post.objects.filter(comments__user=user, comments__is_active=1)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version