Django

Django Vuejs Viewを作成する(Total:9day30.5h)

処理をどこに書くかなやむー

どうしても処理は行がたくさんになりがちですし、共通の処理もあるのでなるべく分かりやすく整理したいなぁ
まぁ、完璧にきれいなものを目指してもわからんので、各アプリにutilsを作って各テーブルの処理を書こうかなと。

  • Viewsフォルダmodelごとにフォルダを作成しファイルをわける
  • serializersフォルダは、serializersはAPIからの直接処理

こんな感じで分けていこうかなと思う。
共通処理になりそうなものは、Viewsのそれぞれのテーブルのフォルダ内に、Utilsファイルを作るかServiceって名前かなにかで作ろうかと思う。

とりあえず進めていこう年月トランを作成するViewをつくる

まだまだ、一気にコードを書いて実行してっていうのはできないので、少し書いては動作確認を行うことで開発している。
ってか、VBAなら一気にかけるんですがほぼしない。

ごろう
確実にうごくものを積み重ねることが結果はやくできる

これが自分のやり方!ってか、教える時もそうしてるかなぁ
処理の流れがイメージできるか、できていないなら日本語で処理をすべて書いてからコードを書いている。

from django.shortcuts import render
from rest_framework.views import APIView
from rest_framework.generics import ListAPIView, CreateAPIView, RetrieveUpdateAPIView, RetrieveUpdateDestroyAPIView, UpdateAPIView
from django.views import View
from ...models import *

class YearMonthCreateAPI(APIView):
    """
    年月トラン作成
    """
    def post(self, request, *args, **kwargs):
        yearmonth = 
        
from django.views import View
from ...models import *
from datetime import datetime, date, timedelta

class YearMonth(APIView):
    """
    年月API
    """       
    def get_last_yearmonth(self, request, *args, **kwargs):
        """
        最終年月レコード取得
        Args:
            return: [最終年月を返す]
        """
        last_yearmonth = YearMonth.objects.order_by('-end_date').first() #最終作成済み
        return last_yearmonth
    
    def post(self, request, *args, **kwargs):
        '''
        次月の作成し保存する
        '''
        last_yearmonth = self.get_last_yearmonth
        print('last_yearmonth.start_date')
        print(last_yearmonth.start_date)
        start_date = last_yearmonth.end_date + timedelta(days=1)
        end_date = last_yearmonth.end_date + relativedelta(months=1)
        yearmonth = last_yearmonth.yearmonth
        #文字列に変換
        str_yearmonth = str(yearmonth)
        str_yearmonth = str_yearmonth[5:6]
        if str_yearmonth == '12':
            yearmonth = yearmonth + 100 - 11
        new_obj = YearMonth(
            year_month = yearmonth,
            start_date = start_date,
            end_date = end_date,
            open_flg = '未'
        )
        new_obj.save()
        return new_obj

ポイント

動作確認方法がわからなーい

めっちゃ長い行数になっちゃいそう…

年月トラン作成時に、年月社員トラン、日にち曜日トラン、スケジュールトランを一気に作成するけど、どう分割するの?

ちょっと、書いてもここまで疑問が出てきました。

これからどうしよ

Djangoだけで作ってるときは、とりあえず簡易な画面を作って動かして検証してたけど、今回はAPIで受けて実行するんで、画面はフロントエンドで作ってなのでどうしようか。

ちょっとってみようと思うこと

テスト実施方法を検索

検証のために簡単にPostでリクエストを送る方法があるか

-Django

© 2022 ごろう@縁紡ぐ