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

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

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

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

Python 3.x

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

解決済

Djangoでデータベースに反映されない。

vanvanvan
vanvanvan

総合スコア0

Django

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

Python 3.x

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

1回答

0評価

0クリップ

1649閲覧

投稿2019/12/25 19:41

編集2022/01/12 10:58

userの登録フォームを作りましたが、データベースに保存できません。
そして、フォーム埋めてRgister をクリックした後は{% if registered %} <h2>thank you for registering!</h2>が帰ってきません。またelseのロジックが帰ってきます。

こんなフォームです

環境

OS WINDOWS 10
PYTHON 3.6
DJANGO 2.2

HTML

html

{% extends 'basic_app/base.html' %} {% load staticfiles %} {% block body_block %} <div class="container"> <div class="jumbotron"> {% if registered %} <h2>thank you for registering!</h2> {% else %} <h2>Register Here</h2> <h3>Fill out the form:</h3> <form enctype="multipart/form-data" method="post"> {% csrf_token %} {{ user_form.as_p }} {{ profile_form.as_p }} <input type="submit" name='' value="Register"> </form> {% endif %} </div> </div> {% endblock %}

FORMS.PY

forms

from django import forms from django.contrib.auth.models import User from basic_app.models import UserProfileInfo class UserForm(forms.ModelForm): password = forms.CharField(widget=forms.PasswordInput()) class Meta: model = User # if i want to , I could about that add that in. fields = ('username','email','password') class UserProfileInfoForm(forms.ModelForm): class Meta: model = UserProfileInfo fields = ('portfolio_site','profile_pic')

VIEWS.PY

view

from django.shortcuts import render from basic_app.forms import UserForm, UserProfileInfoForm from django.contrib.auth import authenticate, login,logout from django.http import HttpResponseRedirect, HttpResponse from django.urls import reverse from django.contrib.auth.decorators import login_required # Create your views here. def index(request): return render(request,'basic_app/index.html') @login_required def user_logout(request): logout(request) # reverse back to the indexpage. return HttpResponseRedirect(reverse('index')) @login_required def special(request): return HttpResponse("You are logged in, Nice!") ##################### 登録の関数 def register(request): registered = False if request.method == 'post': user_form = UserForm(data=request.post) profile_form = UserProfileInfoForm(data=request.post) if user_form.is_valid() and profile_form.is_valid(): user = user_form.save() # user.set_password(user.set_password) this I said first. jose has different code. user.set_password(user.password) user.save() profile = profile_form.save(commit=False) profile.user = user if 'profile_pic' in request.FILES: print('found it') profile.profile_pic = request.FILES['profile.pic'] profile.save() registered = True else: print(user_form.errors, profile_form.errors) else: user_form = UserForm() profile_form = UserProfileInfoForm() return render(request, 'basic_app/registration.html', { 'user_form':user_form, 'profile_form':profile_form, 'registered':registered }) ############################################## def user_login(request): if request.method == 'post': username = request.post.get('username') password = request.post.get('password') user = authenticate(username=username, password=password) if user: if user.is_active: login(request,user) return HttpResponseRedirect(reverse('index')) else: return HttpResponse('ACCOUNT IS NOT ACTIVE') else: print("Someone tried to login and failed!") # this is what they tried to log in with. this username and password is not already in our database. print('Username:{} and password {}'.format(username,password)) return HttpResponse('invalid login details supplied!') else: return render(request,'basic_app/login.html',{})

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Django

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

Python 3.x

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