break_even_pointのデータベースのカラムに追加したい

break_even_pointをデータベースに追加するためには、以下の手順を踏む必要があります。

  1. モデルの更新:

    • Rakuten_Import_dataモデルに新しいフィールドbreak_even_pointを追加します。
  2. マイグレーションの作成と適用:

    • Djangoのマイグレーションを作成し、適用します。
  3. データの更新:

    • break_even_pointフィールドを計算し、データベースに保存します。

モデルの更新

まず、Rakuten_Import_dataモデルにbreak_even_pointフィールドを追加します。

python
# your_django_app/models.py from django.db import models class Rakuten_Import_data(models.Model): original_product_code = models.CharField(max_length=255) cost_price = models.FloatField() yen_low_own_price = models.FloatField() break_even_point = models.FloatField(null=True, blank=True) # 新しいフィールドを追加 def __str__(self): return self.original_product_code

マイグレーションの作成と適用

次に、マイグレーションを作成し、適用します。

bash
# マイグレーションを作成 python manage.py makemigrations your_django_app # マイグレーションを適用 python manage.py migrate your_django_app

データの更新

データを計算し、break_even_pointフィールドに保存します。管理コマンドなどでこれを実行できます。

python
import pandas as pd from django.core.management.base import BaseCommand from your_django_app.models import Rakuten_Import_data class Command(BaseCommand): help = 'Calculate and update break_even_point' def handle(self, *args, **options): # 各種費用を設定 shipping = 500 # 送料 sizai = 50 # 梱包資材 zinkenhi = 100 # 商品別人件費 mall_fee_rate = 0.09 # モール手数料率(9%) # データを取得 import_data = Rakuten_Import_data.objects.all() for data in import_data: revenue = data.yen_low_own_price cost = data.cost_price mall_fee = revenue * mall_fee_rate profit = revenue - cost - mall_fee - shipping - sizai - zinkenhi data.break_even_point = profit data.save() self.stdout.write(self.style.SUCCESS('Successfully updated break_even_point'))

このスクリプトをmanagement/commands/update_break_even_point.pyとして保存し、以下のように実行します:

bash
python manage.py update_break_even_point

最後に

これで、break_even_pointがデータベースに保存され、計算された値がデータベースに反映されます。

未分類

Posted by ぼっち