学生向けプログラミング入門 | 無料

学生向けにプログラミングを無料で解説。Java、C++、Ruby、PHP、データベース、Ruby on Rails, Python, Django

Django3.2 | クラウドソーシングアプリの構築 | 14 | プロフィール

↓↓クリックして頂けると励みになります。


13 | テンプレート】 << 【ホーム】 >> 【15 | 依頼者モデル



「crowdsource/urls.py」ファイルを編集します。


記述編集 【Desktop/crowdsource/crowdsource/urls.py】11行目

from django.contrib import admin
from django.urls import path, include
from django.contrib.auth import views as auth_views
from core import views

from core.customer import views as customer_views
from core.courier import views as courier_views

customer_urlpatters = [
    path('', customer_views.home, name="home"),
    path('profile/', customer_views.profile_page, name="profile"),
]

courier_urlpatters = [
    path('', courier_views.home, name="home"),
]


urlpatterns = [
    path('admin/', admin.site.urls),
    path('oauth/', include('social_django.urls', namespace='social')),
    path('', views.home),

    path('sign-in/', auth_views.LoginView.as_view(template_name="sign_in.html")),
    path('sign-out/', auth_views.LogoutView.as_view(next_page="/")),
    path('sign-up/', views.sign_up),

    path('customer/', include((customer_urlpatters, 'customer'))),
    path('courier/', include((courier_urlpatters, 'courier'))),

]



「core/customer/views.py」ファイルを編集します。


記述編集 【Desktop/crowdsource/core/customer/views.py】

from django.shortcuts import render, redirect
from django.contrib.auth.decorators import login_required
from django.urls import reverse
from core.customer import forms

@login_required()
def home(request):
    return redirect(reverse('customer:profile'))

@login_required(login_url="/sign-in/?next=/customer/")
def profile_page(request):
    user_form = forms.BasicUserForm(instance=request.user)

    if request.method == "POST":
        user_form = forms.BasicUserForm(request.POST, instance=request.user)
        if user_form.is_valid():
                user_form.save()

                return redirect(reverse('customer:profile'))

    return render(request, 'customer/profile.html', {
        "user_form": user_form
    })



「core/customer」フォルダに「forms.py」ファイルを新規作成します。
作成した「forms.py」ファイルを以下のように編集します。



新規作成 【Desktop/crowdsource/core/customer/forms.py】

from django import forms
from django.contrib.auth.models import User

class BasicUserForm(forms.ModelForm):
  class Meta:
    model = User
    fields = ('last_name', 'first_name')



「core/templates/customer」フォルダに「profile.html」ファイルを新規作成します。
作成した「profile.html」ファイルを以下のように編集します。



新規作成 【Desktop/crowdsource/core/templates/customer/profile.html】

{% extends 'customer/base.html' %}
{% load bootstrap4 %}

{% block main %}
<!-- 基本情報 -->
<b class="text-secondary">基本情報</b><br />
<div class="card bg-white mt-2 mb-5">
  <div class="card-body">
    <form method="POST">
      {% csrf_token %}
      {% bootstrap_form user_form %}
      <input type="hidden" name="action" value="update_profile">
      <button type="submit" class="btn btn-danger">保存</button>
    </form>
  </div>
</div>

{% endblock %}



ブラウザを確認します。
氏名の変更ができることを確認してください。
http://127.0.0.1:8000/customer/profile/

氏名変更
氏名変更


↓↓クリックして頂けると励みになります。


13 | テンプレート】 << 【ホーム】 >> 【15 | 依頼者モデル