@maximifn
Пока ты спишь - твой враг качается

Почему нельзя обратиться из этой части запроса?

Использую psycopg2
joxi.ru/LmGeRznSweYqbA - таблица
запрос к базе -
curr.execute("INSERT INTO public.instagram_post VALUES (post_id,link,image,like_count,comment,comment_count,login_id)",
                     [id,link,photo,comment,comment_count,account[1]])

Ошибка:
psycopg2.ProgrammingError: ОШИБКА:  столбец "post_id" не существует
LINE 1: INSERT INTO public.instagram_post VALUES (post_id,link,image...
                                                  ^
HINT:  Столбец "post_id" есть в таблице "instagram_post", но на него нельзя ссылаться из этой части запроса.


Модель в Django
class Post(models.Model):
    login = models.ForeignKey(Instagram, on_delete=models.CASCADE)
    post_id = models.PositiveIntegerField(primary_key=True)
    link = models.CharField(max_length=300)
    image = models.CharField(max_length=300)
    like_count = models.PositiveIntegerField(default=0)
    comment = models.CharField(max_length=1500, blank=True)
    comment_count = models.PositiveIntegerField(default=0)


Что может быть не так? Ошибка и HINT противоречат друг другу (или я что то не так делаю?)
  • Вопрос задан
  • 1461 просмотр
Решения вопроса 1
@Neyury
Использовать ORM и модели django в любом месте можно таким образом:
import os
import django

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings") # путь к файлу настроек
django.setup()


Если не получается импортировать project.settings, то можно дополнительно написать вначале
import sys

sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) # В последнем параметре указываем путь, откуда можно сделать импорт.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы