вернуть int (значение) ValueError: недопустимый литерал для int () с основанием 10: 'Umi Falafel' - PullRequest
0 голосов
/ 22 апреля 2019

Я экспортировал файлы CSV из базы данных и хотел бы сохранить информацию CSV в моих моделях Django.Я получаю проблему ValueError.

Я пытался преобразовать строку в целое число в моих файлах .py

load_vendor_data.py

import csv
from polls.models import Vendors

with open('../data/csv/Vendors.csv') as cap:
     reader = csv.reader(cap)
     # i = 0
     for row in reader:
       vendors = Vendors(row[0],row[1],row[2])
       vendors.save()
       # i = i + 1

models.py

class Vendors(models.Model):
   name = models.CharField(max_length=100)
   location = models.CharField(max_length=100)
   price_range = models.CharField(max_length=100)

   def __str__(self):
      return self.name


class Act(models.Model):
   Name = models.CharField(max_length=100)
   Stage = models.CharField(max_length=100)
   Start_Time = models.TimeField()
   End_Time = models.TimeField()
   Date = models.DateField()

   def __str__(self):
      return self.name

Stacktrace

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Users\tawhi\project\2019-ca472-John-Tawhid\festimaps\polls\load_vendor_data.py", line 9, in <module>
    vendors.save()
  File "C:\Users\tawhi\project\cfehome\lib\site-packages\django\db\models\base.py", line 807, in save
    force_update=force_update, update_fields=update_fields)
  File "C:\Users\tawhi\project\cfehome\lib\site-packages\django\db\models\base.py", line 837, in save_base
    updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
  File "C:\Users\tawhi\project\cfehome\lib\site-packages\django\db\models\base.py", line 904, in _save_table
    forced_update)
  File "C:\Users\tawhi\project\cfehome\lib\site-packages\django\db\models\base.py", line 934, in _do_update
    filtered = base_qs.filter(pk=pk_val)
  File "C:\Users\tawhi\project\cfehome\lib\site-packages\django\db\models\query.py", line 784, in filter
    return self._filter_or_exclude(False, *args, **kwargs)
  File "C:\Users\tawhi\project\cfehome\lib\site-packages\django\db\models\query.py", line 802, in _filter_or_exclude
    clone.query.add_q(Q(*args, **kwargs))
  File "C:\Users\tawhi\project\cfehome\lib\site-packages\django\db\models\sql\query.py", line 1250, in add_q
    clause, _ = self._add_q(q_object, self.used_aliases)
  File "C:\Users\tawhi\project\cfehome\lib\site-packages\django\db\models\sql\query.py", line 1276, in _add_q
    allow_joins=allow_joins, split_subq=split_subq,
  File "C:\Users\tawhi\project\cfehome\lib\site-packages\django\db\models\sql\query.py", line 1210, in build_filter
    condition = self.build_lookup(lookups, col, value)
  File "C:\Users\tawhi\project\cfehome\lib\site-packages\django\db\models\sql\query.py", line 1104, in build_lookup
    return final_lookup(lhs, rhs)
  File "C:\Users\tawhi\project\cfehome\lib\site-packages\django\db\models\lookups.py", line 24, in __init__
    self.rhs = self.get_prep_lookup()
  File "C:\Users\tawhi\project\cfehome\lib\site-packages\django\db\models\lookups.py", line 74, in get_prep_lookup
    return self.lhs.output_field.get_prep_value(self.rhs)
  File "C:\Users\tawhi\project\cfehome\lib\site-packages\django\db\models\fields\__init__.py", line 966, in get_prep_value
    return int(value)
ValueError: invalid literal for int() with base 10: 'Umi Falafel'

Я не ожидаю ошибок при импорте файлов CSV в django db

1 Ответ

1 голос
/ 22 апреля 2019

При создании экземпляров моделей всегда следует использовать ключевые аргументы, а не позиционные.

vendors = Vendors(name=row[0], location=row[1], price_range=row[2])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...