実現したいこと
models.pyに書かれた関数をview.pyにて呼び出したい。
前提
それぞれのファイルは以下のようになっています。
view.py
1 2from django.shortcuts import render 3from django.http import HttpResponse 4from .forms import ContactForm 5from django.views import View 6fname()
models.py
1from django.db import models 2def fname(): 3 print(‘text’) 4return print(‘string’)
発生している問題・エラーメッセージ
NameError at / name 'fname' is not defined
補足情報(FW/ツールのバージョンなど)
そもそもはFormsによってMySQLにHTMLのformからPOSTした値を
した値を登録登録したいと思っていました。
以下のAはmodels.pyにあるclass Aを呼び出していると認識しているのですが、該当するものがない、というようなメッセージがでます。
models.py
1from django.db import models 2class A(models.Model): 3 id = models.IntegerField(primary_key=True) 4 def __str__(self): 5 return self.id 6
views.py
1 2from django.shortcuts import render 3from django.http import HttpResponse 4from .forms import ContactForm 5from django.views import View 6 7def index_template(request): 8 form = ContactForm(request.POST or None) 9 if form.is_valid(): 10 a=form.cleaned_data["a"] 11 b=form.cleaned_data["b"] 12 obj=A(a=a,b=b) 13 obj.save() 14
二つの問題はどう関係してるんでしょう?全く別々の問題なんでしょうか
私の認識が間違っている可能性は高いのですが、HTMLのformからPOSTした値を受け取ってデータベースに保存する際にviews.pyからmodels.pyで作ったclassを呼び出す、という過程があると思うのですが、呼び出そうとすると、そんなのないよ、とエラーが返されるのです。
二つの問題というより、forms.Formを利用して作ったHTMLからPOSTした値をMySQLへ登録したいというのが本題なのですが、話が具体的すぎない方がすぐに回答が見つかるかなと思ったのです。
もしかしたらforms.pyに書くべきものをmodels.pyに書いているのかもしれないです。
import をお忘れでは?
回答1件