Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Django】モデルのインスタンス生成時のエラー情報(invalid literal for int() with base 10:)


Djangoにてモデルのインスタンス生成時に発生したエラーとその解決情報になります。

 

 

 

目次

 

1.発生したエラー内容

 

views.pyで、

 

views.py

musicIns = Music.objects.create(
             trackname = track_data['name'],
              artist = track_data['album']['artists'][0]['name'],
              danceability = track_feature['danceability'],
    )

 

のような形式でモデルのインスタンスを作成しようとしていたところ、以下のようなエラーが発生しました。

 

モデルのインスタンス作成時発生エラー

モデルのインスタンス作成時発生エラー

 

実際には、spotifyからspotifyの提供しているAPIを使用して曲データをダウンロードしようとした時のものですが、このようなエラーが発生した時がありました。

(そのため、エラー内に'YOASOBI'とか出てます)

 

 

2.原因と対策

 

原因を調べていったところ、モデル内のある変数の型式が違っていたためというものでした。

 

models.py内でのモデルの定義側では、他の変数と一緒にコピペ作業などで作っていたこともあり、誤って

 

models.py

artist = models.IntegerField('アーティスト名',blank=True, null=True,default=1)

 

のような形にしていました。実際には、アーティスト名なので、

 

models.py

artist = models.CharField('アーティスト名', max_length=50, null=True)

 

などが正しいのですが、CharFieldではなくIntegerFieldになっていました。

 

エラー情報としては、整数型のはずなのに'YOASOBI'という文字列型が入ってきたよというものです。

models.pyのMusicモデルの変数artistの宣言を、

 

models.py

artist = models.CharField('アーティスト名', max_length=50, null=True)

 

のように文字列型(CharField)に変更して保存し、例のマイグレーションをかけて画面を再起動したら解決しました。

 

 

 

 

関連記事:

【Django】マイグレーション実行時に「sqlite3.OperationalError: table "**********" already exists」のようなエラーが出た時の対処方法 - Django Girls and Boys 備忘録

 

【Django】Djangoでのhtml(javascript)側からpython(views.py)側へ値を送る時の方法の一例 - Django Girls and Boys 備忘録

 

【Django】モデルの各フィールドの設定例(CharField、IntegerField、FloatField、DateTimeFieldなど) - Django Girls and Boys 備忘録

 

【Django】モデル内のレコード(オブジェクト)を削除する方法 - Django Girls and Boys 備忘録

 

【Django】モデルのデータ変更時のマイグレーション方法 - Django Girls and Boys 備忘録

 

【Django】モデルのインスタンス生成時のエラー情報(invalid literal for int() with base 10:) - Django Girls and Boys 備忘録

 

【Python】「文字列として受け取ったリスト」をリストに復元した時の対処方法、変換方法 - Django Girls and Boys 備忘録

 

【Git】Gitのダウンロード、インストール方法 - Django Girls and Boys 備忘録

 

【Git GitHub】初心者、初級者におすすめの入門書 - Django Girls and Boys 備忘録

 

【Python Django】git init について - Django Girls and Boys 備忘録

 

【Git】ユーザー名とメールアドレスの設定方法 - Django Girls and Boys 備忘録

 

【Git】git addとステージングエリア(インデックス)への登録について - Django Girls and Boys 備忘録

 

【Git】git commitとローカルリポジトリへの登録、gitの概略イメージ - Django Girls and Boys 備忘録

 

【Git GitHub】GitHubのアカウント作成方法 - Django Girls and Boys 備忘録

 

【Git GitHub】公開鍵の設定方法 - Django Girls and Boys 備忘録

 

【Git GitHub】Gitのダウンロード、インストールから「git add」、「git commit」によるGitへの登録までの一通りの方法 - Django Girls and Boys 備忘録

 

【Git GitHub】「git add」、「git commit」後の「git push」について、リモートリポジトリにプッシュする方法 - Django Girls and Boys 備忘録

 

【Git GitHub】プルリクエストとマージを実行する方法 - Django Girls and Boys 備忘録

 

【Git GitHub】リモートリポジトリをクローンする方法 - Django Girls and Boys 備忘録

 

【Git GitHub】Git、GitHubのダウンロード、インストール、「git add」、「git commit」によるGitへの登録と「git push」、マージによるGitHubのmasterへの反映とクローンまでの一通りの方法 - Django Girls and Boys 備忘録