前提・実現したいこと
Djangoを用いてwebアプリ作成中です。
DB内のグループというテーブルに新しくデータを追加できるようにしたいです。
ディレクトリ構成
C:<project名>
│ db.sqlite3
│ manage.py
│
├─myapp
│ │ admin.py
│ │ apps.py
│ │ forms.py
│ │ models.py
│ │ tests.py
│ │ urls.py
│ │ views.py
│ │ init.py
│ │
│ ├─migrations
│ │ │ 0001_initial.py
│ │ │ init.py
│ │ │
│ │ └─__pycache__
│ │ 0001_initial.cpython-37.pyc
│ │ init.cpython-37.pyc
│ │
│ ├─static
│ │ └─myapp
│ │ base.css
│ │ comment.css
│ │ group_create.css
│ │ group_list.css
│ │ index.css
│ │ login.css
│ │ signup.css
│ │ userpage.css
│ │
│ ├─templates
│ │ └─myapp
│ │ base.html
│ │ comment.html
│ │ group_create.html
│ │ group_list.html
│ │ group_thread.html
│ │ index.html
│ │ login.html
│ │ mypage.html
│ │ signup.html
│ │ userpage.html
│ │ userupdate.html
│
├─media
│ └─myapp
│ ├─groups
│ │ group_defo.jpg
│ │
│ └─users
│ user_defo.jpg
│
└─project2
│ settings.py
│ urls.py
│ wsgi.py
│ init.py
│
発生している問題・エラーメッセージ
OperationalError at /myapp/group_create/ table myapp_group has no column named group_img
該当のソースコード
myapp/models.py
from django.db import models from django.core.validators import MinLengthValidator from django.utils import timezone from django.conf import settings from django.contrib.auth.models import User class Group(models.Model): title = models.CharField('GroupName',max_length=50,validators=[MinLengthValidator(1)]) group_img = models.ImageField(upload_to='myapp/groups', default='/media/myapp/groups/group_defo.jpg') create_user = models.ForeignKey(User, on_delete=models.CASCADE) def __str__(self): return self.title
myapp/forms.py
from django import forms from .models import Group, Comment, Profile from django.contrib.auth.models import User class GroupCreateForm(forms.ModelForm): class Meta: model=Group fields=("title", "group_img")
myapp/views.py
from django.shortcuts import render, get_object_or_404, redirect from .forms import * from django.views import generic from .models import Group, Comment, Profile from django.urls import reverse_lazy from django.db.models import Q from django.contrib.auth.decorators import login_required from django.contrib.auth.models import User @login_required def GroupCreate(request): #送信内容を基にフォームを作る form=GroupCreateForm(request.POST or None) #method=POST(送信ボタンを押下)時、入力内容に問題がなければ if request.method=='POST' and form.is_valid(): create_user = User form.save() return redirect('myapp:group_list') #通常時のページアクセスや入力内容に誤りがあればまたページを表示 context={ 'form':form } return render(request,'myapp/group_create.html',context)
myapp\migrations\0001_initial.py
from django.conf import settings import django.core.validators from django.db import migrations, models import django.db.models.deletion import django.utils.timezone class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Group', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=50, validators=[django.core.validators.MinLengthValidator(1)], verbose_name='GroupName')), ('group_img', models.ImageField(default='/media/myapp/groups/group_defo.jpg', upload_to='myapp/groups')), ('create_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), ]
試したこと
python manage.py makemigrations myapp
python manage.py migrate
を実行してみましたが、うまくいきません。
DB初期化を行いましたが、うまくいきません。
補足情報(FW/ツールのバージョンなど)
Djangoを利用しています。
作成途中でわかりにくいコード、ディレクトリ構成となってしまい申し訳ありませんが、
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。