2017-01-10 1 views
0

Вот моя модель:Django модель CharField бросает ИНТ ошибку() при вызове сохранения()

class MarketData(models.Model): 
    data_source = models.CharField(max_length=100) 

И вот код, который я продолжаю испытывать

python3 manage.py shell 

Затем я запускаю этот

from q.models import MarketData 
data = MarketData("Broker") 
data.save() 

Какая именно ошибка

File "/home/soverton/.local/lib/python3.5/site-packages/django/db/models/fields/init.py", line 946, in get_prep_value return int(value) ValueError: invalid literal for int() with base 10: 'Broker'

Я запустить следующие и получить статус OK сообщения

python3 ./manage.py makemigrations q 

Migrations for 'q': 
    q/migrations/0006_auto_20170110_1911.py: 
    - Alter field data_source on marketdata 

И, наконец, я нажимаю тех, кто мигрируют.

python3 manage.py migrate 
Operations to perform: 
     Apply all migrations: admin, auth, contenttypes, q, sessions 
    Running migrations: 
     Applying q.0006_auto_20170110_1911... OK 

Так что же я получаю ошибку int() при сохранении, когда она должна сохранять символ?

Недавно я переформатировал проект для перехода с SQLite на PostgresSQL и удаленной истории миграции. Что-то странное происходит с базой данных?

+0

Возможный дубликат [Джанго: ValueError: неверный буквальным для Int() с основанием 10:] (http://stackoverflow.com/questions/41463473/django-valueerror- invalid-literal-for-int-with-base-10) – e4c5

ответ

0

Я не был напрямую приписал имена полей аргументам.

Правильный ответ

data = MarketData(data_source="Broker") 
data.save() 
+1

И причина в том, что существует скрытое поле 'id', в котором хранятся целые первичные ключи. – RemcoGerlich