В приложении Django с именем ссылки, в один момент я бегу следующий код на QuerySet, и получаю ошибку: колонка user_id не существует:SQL Синтаксическая ошибка, при разработке Django QuerySet с использованием дополнительных
date = datetime.now()-timedelta(hours=1)
groups = Group.objects.filter(private='0').extra(select = {
"views" : """
SELECT COUNT(*)
FROM links_grouptraffic
JOIN links_group on links_grouptraffic.which_group_id = links_group.id
WHERE links_grouptraffic.visitor_id = user_id
AND links_grouptraffic.time > %s """}, select_params=(date,),
).order_by("-views")
user_id в этом коде является ссылкой на Django.contrib.auth
user
. Я никоим образом не переоценил это.
Другие вещи, которые я пробовал:
Если я изменить user_id
к user.id
, я получаю сообщение об ошибке: ошибки синтаксиса или вблизи «» Это брошено со ссылкой на линии WHERE links_grouptraffic.visitor_id = user_id.
Если меняю user_id
в links_user.id
, я получаю ошибку: отсутствует FROM-п запись для таблицы «links_user»
Если изменить user_id
к user
(и соответственно, visitor_id
к visitor
), я получаю ошибку: колонка links_grouptraffic.visitor не существует (visitor
является внешним ключом к user
, следовательно, должно быть visitor_id
).
Похожие модели:
class Group(models.Model):
topic = models.TextField(validators=[MaxLengthValidator(200)])
owner = models.ForeignKey(User)
private = models.CharField(max_length=5, default=0)
created_at = models.DateTimeField(auto_now_add=True)
class GroupTraffic(models.Model):
visitor = models.ForeignKey(User)
which_group = models.ForeignKey(Group)
time = models.DateTimeField(db_index=True, auto_now_add=True)
Как это исправить?
Вы уверены, что Ваш 'модель group' имеет' user_id' столбец? –
@ TomaszJakubRup: модель группы или модель групповой трафик? –
это: 'groups = Group.objects.filter (private = '0')' –