質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

289閲覧

admin管理ページから情報を追加しようとすると no column named

grilled_python

総合スコア237

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/03/20 06:32

編集2018/03/20 06:44

djangoで質問投稿のアプリを作成しています。
投稿のフィールドはタイトル、テキスト、日付、カテゴリです。
投稿しようとすると

OperationalError at /admin/qs_posts/post/add/
table qs_posts_post has no column named category_id
と表示されます。

原因の一つだと思われる場所はmodel.py

python

1class Post(models.Model): 2 """質問の投稿""" 3 4 title = models.CharField('タイトル', max_length=255) 5 text = models.TextField('本文') 6 created_at = models.DateTimeField('作成日', default=timezone.now) 7 category = models.ForeignKey(Category, verbose_name='カテゴリ', on_delete=models.PROTECT ) 8 9 def __str__(self): 10 return self.title

この部分です。コード自体はあっていると思うですが、
categoryの部分をあとから追加したのですが、migrateした際に、
2択で、1.「1回限りのデフォルトを行いますか?」
2.「デフォルトの値を設定しますか?」(のような英文だったと思います。)

ここで2を選択して

category = models.ForeignKey(Category, verbose_name='カテゴリ', on_delete=models.PROTECT default="新着")

として、migrateしてしまいました。

修正して、その後、migrateをしても、

ValueError: invalid literal for int() with base 10: '新着'

とエラーがでてしまいます。これが原因ではないかと思います。

どのように解決できるでしょうか?よろしくおねがいいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

migrateの巻き戻しをしました

投稿2018/03/20 08:14

grilled_python

総合スコア237

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問