Django.db.utils.OperationalError: нет такой колонки: *column_name*.id
Здравствуйте, у меня есть небольшое приложение, которое сканирует RSS канал один раз в день. Данные затем анализируются в Pandas DF и затем преобразуются в SQL.
Весь этот процесс работает отлично, когда я захожу в свою базу данных, я вижу, что данные вставлены правильно. Вы можете увидеть это здесь здесь к сожалению, я не могу получить доступ к этим данным. Когда я запрашиваю
queryset = Package.objects.all()
У меня такая ошибка
django.db.utils.OperationalError: no such column: gathering_package.id
<
class Package(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, unique=True)
title = models.CharField(max_length=20)
link = models.CharField(max_length=30)
pubDate = models.CharField(max_length=30)
description = models.CharField(max_length=200)
author = models.CharField(max_length=30)
class Meta:
app_label = 'gathering'
def __str__(self):
return f'{self.title}'
<
def get_source(url: str) -> HttpResponse:
try:
session = HTMLSession()
response = session.get(url)
return response
except requests.exceptions.RequestException as e:
print(e)
def get_feed(url: str) -> pd.DataFrame:
response = get_source(url)
df = pd.DataFrame(columns = ['title', 'link', 'description', 'author', 'pubDate'])
tmp = []
with response as r:
items = r.html.find("item", first=False)
for item in items:
title = re.split('added to PyPI', item.find('title', first=True).text)[0]
link = item.find('guid', first=True).text
pubDate = item.find('pubDate', first=True).text
description = item.find('description', first=True).text or 'No description'
try:
author = item.find('author', first=True).text
except AttributeError:
author = 'No author'
row = {'title': title, 'link': link, 'description': description, 'author': author, 'pubDate': pubDate}
tmp.append(row)
df = pd.DataFrame(tmp)
return df
def replace_xml(url: str):
df = get_feed(url)
engine = create_engine('sqlite:///db.sqlite3')
df.to_sql(Package._meta.db_table, if_exists='replace', con=engine, index=True)
<
<