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

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

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

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1946閲覧

django外部キーを持つ子テーブルのCreate

退会済みユーザー

退会済みユーザー

総合スコア0

Django

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/09/23 22:35

編集2020/09/23 22:37

前提・実現したいこと

django初心者です。
外部キーを持つ子テーブルのデータの追加が出来ません。

python

1●models.py 2class Company(models.Model): 3 name = models.CharField(verbose_name=u'会社名',max_length=50, blank=True, null=True) 4 address = models.CharField(verbose_name=u'ご住所',max_length=100, blank=True, null=True) 5 email = models.CharField(verbose_name=u'メールアドレス',max_length=50, blank=True, null=True) 6 tel = models.CharField(verbose_name=u'電話番号',max_length=50, blank=True, null=True) 7 created_date = models.DateTimeField(auto_now_add = True) 8 updated_date = models.DateTimeField(auto_now = True) 9 10class Service(models.Model): 11 company = models.ForeignKey(Company ,on_delete=models.CASCADE) 12 service_detail= models.TextField(verbose_name=u'サービス内容',blank=True, null=True) 13 created_date = models.DateTimeField(auto_now_add = True) 14 updated_date = models.DateTimeField(auto_now = True)

python

1●forms.py 2class ServiceForm(forms.ModelForm): 3 4 class Meta: 5 model = Service 6 fields =('service_detail',)

python

1●views.py 2class ServiceCreateView(generic.CreateView): 3 template_name = 'form.html' 4 model = Service 5 form_class = ServiceForm 6 7 def post(self, request, *args, **kwargs): 8 form = self.form_class(request.POST) 9 10 company= Company.objects.get(id = self.kwargs['company_id']) 11 form.instance.company_id= company.id 12 form.save()

発生している問題・エラーメッセージ

Unknown column 'company_id' in 'field list

試したこと

1.view.pyで
form.instance.company_id= company.id
↓ に変更
form.instance.company= company
同じエラーが出てしまいます。

2.models.pyで
company = models.ForeignKey(Company ,on_delete=models.CASCADE)
↓ に変更
company = models.IntegerField(default=0)
テーブルの作成が出来ました。
しかし、ForeignKeyで作成したいです。
ご回答よろしくお願いします。

補足情報(FW/ツールのバージョンなど)

django=2.2
pyhton=3.8
mysql=14.14 Distrib 5.7.31

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

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

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

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

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

guest

回答1

0

ベストアンサー

うっかりミスでした。
DB側ではカラムがcompany_idとなっていたところを、
modelでは_idの部分をなぜか消してしまっていたようです。

投稿2020/09/24 01:58

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問