前提・実現したいこと
機械学習アプリ作成の勉強で試しにネット等を見ながら作って勉強しています。
画像をアップし、画像内の文字を読み取って出力するというものを作ろうとしていますが、
画像アップのところで躓いています。
発生している問題・エラーメッセージ
model,view,forms等を作成してmakemigrationsを行ったところ、
以下エラーメッセージが出て、migrationが作成されません。
ちなみにpython manage.py runserverを実行しても同じエラーが出ます。
File "/home/****/miniconda3/envs/ocrvenv/lib/python3.7/site-packages/django/forms/models.py", line 267, in __new__ raise FieldError(message) django.core.exceptions.FieldError: Unknown field(s) (image) specified for User
該当のソースコード
models.py
python
1from django.db import models 2 3class User(models.Model): 4 id = models.AutoField(primary_key=True) 5 name = models.CharField("氏名", max_length=30) 6 password = models.CharField("パスワード", max_length=30) 7 image = models.ImageField(upload_to="images/")
forms.py
python
1from django import forms 2from .models import User 3from django.contrib.auth.forms import AuthenticationForm, UserCreationForm 4from django.contrib.auth.models import User 5 6class ImageForm(forms.ModelForm): 7 class Meta: 8 model = User 9 fields = ("image",)
views.py
python
1from django.shortcuts import render,redirect 2from django.http import HttpResponse 3from .forms import LoginForm, SignUpForm, ImageForm 4from .models import User 5from django.contrib.auth.views import LoginView, LogoutView 6from django.contrib.auth import login, authenticate 7from django.contrib.auth.decorators import login_required 8 9def image_upload(request): 10 if request.method == "POST": 11 form = ImageForm(request.POST, request.FILES) 12 if form.is_valid(): 13 form.save() 14 img_name = request.FILES["image"] 15 img_url = "madia/images/{}".format(img_name) 16 return render(request, "ocrapp/image.html", {"img_url":img_url}) 17 else: 18 image = ImageForm() 19 return render(request, "ocrapp/index.html", {"image":image})
urls.py
python
1from django.urls import path 2from . import views 3from django.conf import settings 4from django.conf.urls.static import static 5 6urlpatterns = [ 7 path("index/", views.index, name="index"), 8 path("", views.Login.as_view(), name="login"), 9 path("", views.signup, name="signup"), 10 path("", views.image_upload, name="imageupload") 11] 12 13urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
試したこと
- 「Unknown field(s) (image) specified for User」で解決方法を検索
出てきたのは変数名のタイプミスやmodelsの各変数の末尾に不要なカンマが入力されている等の原因によるもので、これには該当しない。
- 実装方法を説明するページをいくつか見て、設定に漏れや間違いがないかを探ってみました
- 試しに変数名(image)をimgに変えてみた。
補足情報(FW/ツールのバージョンなど)
python 3.7.4
django 3.0.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。