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

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

Django3.2 | 14 | QRオーダーシステムの構築 | 飲食店登録実装

[13 | ユーザー登録] << [ホーム] >> [15 | 飲食店 表示]

Django側(qrmenu_server)の実装を行います。


Visual Studio Codeで「qrmenu_server」を開きます。
「qrmenucore」フォルダの「models.py」ファイルを開きます。

models.pyの編集
models.pyの編集



記述編集 【Desktop/QRMenu/qrmenu_server/qrmenucore/models.py】

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

# Create your models here.
class Place(models.Model):
    owner = models.ForeignKey(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=255)
    image = models.CharField(max_length=255)
    number_of_tables = models.IntegerField(default=1)

    def __str__(self):
        return "{}/{}".format(self.owner.username, self.name)



マイグレーションファイルを作成します。


コマンド
python manage.py makemigrations


マイグレートします。


コマンド
python manage.py migrate

マイグレーション
マイグレーション



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



新規作成 【QRMenu/qrmenu_server/qrmenucore/serializers.py】

from rest_framework import serializers
from . import models

class PlaceSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Place
        fields = ('id', 'name', 'image')
        



「qrmenu_core/views.py」ファイルを以下のように編集します。


記述編集 【QRMenu/qrmenu_server/qrmenucore/views.py】

from rest_framework import generics
from . import models, serializers

# Create your views here.
class PlaceList(generics.ListCreateAPIView):
    serializer_class = serializers.PlaceSerializer

    def get_queryset(self):
        return models.Place.objects.filter(owner_id=self.request.user.id)
    
    def perform_create(self, serializer):
        serializer.save(owner=self.request.user)



Pathの設定をします。
「qrmenu_server/urls.py」ファイルを以下のように編集します。


記述追加 【QRMenu/qrmenu_server/qrmenu_server/urls.py】

from django.contrib import admin
from django.urls import path, include

from qrmenucore import views

urlpatterns = [
    path('admin/', admin.site.urls),

    path('auth/', include('djoser.urls')),
    path('auth/', include('djoser.urls.authtoken')),

    path('api/places/', views.PlaceList.as_view()),
]



管理画面の実装を行います。
「qrmenucore/admin.py」ファイルを以下のように編集します。


記述編集 【qrmenucore/admin.py】

from django.contrib import admin
from . import models

# Register your models here.
admin.site.register(models.Place)



Webサーバーを起動します。
コマンド
python manage.py runserver


ブラウザ確認
http://127.0.0.1:8000/admin/


Placesが追加になっています。

places追加
places追加



飲食店を追加します。
imageフィールドには適当な画像のURLを入れてください。

AddPlace
AddPlace



3つくらい飲食店を登録しておいてください。

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


[13 | ユーザー登録] << [ホーム] >> [15 | 飲食店 表示]