一つのプロジェクト内で2つのモデルで構成させてます。
仮にAモデル、Bモデルとします。
現在、Bモデルには以下のようにハードコーディングしています。
Bモデル (apps/B/models.py) Class Banana (models.Model): SUM_TOTAL = 500
これを以下のように処理したいと思ってます。
Aモデル (apps/A/models.py) Class Apple (models.Model): cart_subtotal = models.PositiveIntegerField( default=0, )
Bモデル (apps/B/models.py) Class Banana (models.Model): SUM_TOTAL = ここにcart_subtotalの数値を代入したい
cart_subtotalというカラムの値をSUM_TOTALに代入したいと思ってます。
やってみたこと
Bモデル from A.models.py import Apple as Ap Class Banana (models.Model): SUM_TOTAL = Ap.cart_subtotal
当然ですが、エラーです。。。
どうかお力を貸していただきたいです。
よろしくお願いします。
手打ちして正しくないコードを書いていますせんか? コピーアンドペーストで正しくPythonのコードを貼ってください。
あと↑のせいもあると思いますが、表題とコードが合っていないし、何に困っているのか(何が分からないか)も書かれていないし、やりたいことも書かれていないように見えます。
「SUB_TOTALにcart_subtotalの値を入れたいです」の意味が通じないのでもっと前提条件を書いてください。
データベースには「cart_subtotalというカラムを持ったappleというテーブル」があって、そこにレコードが入っているという状態です。
SUM_TOTAL = ?? の実行はクラス定義文の実行時点になるのですけれど、その時にデータベースを参照したいと言うことですか?
複数レコードあったら、いったいどのレコードのcart_subtotalを使えばいいんでしょう?
cart_subtotalというカラムの値をSUM_TOTALに代入するという形をとりたいです。
Django初学者なので、質問内容が稚拙で意図が伝わりにくく申し訳ございません。
「cart_subtotalというカラムの値」の意味を説明していただけませんか?
単純には、appleテーブルに入っている(10件入っているのか100件入っているのかわかりませんが)複数あるレコードのうちのどれかのcart_subtotalカラムの値、と解釈してしまうのですが。
データベースのレイヤーで「こう動いて欲しい」動作を説明する方がもしかしたら近道かもしれません。
modelsは
from django.db import models
で束縛される django.db.model だと思っていいですか? (そこがずれている? と思ったので確認です)
実は、モデルBには
def create_evaluations(self):
Evaluation.objects.create(
buyer = buyer
time_variable=timezone.now() + timezone.timedelta(
days=Banana.SUM_TOTAL))
Class Banana (models.Model):
SUM_TOTAL = 10
buyer =models.ForeignKey('User')
time_variable = models.DateTimeField('可変な時間差', default=timezone.now)
という処理をさせていて、
SUM_TOTAL の部分が、具体値の時は動きます。
SUM_TOTALの部分をAdmin上でbuyerごとに変えたく、
その値をデータベースに保存させるためのモデルが
Class Apple (models.Model):
cart_subtotal = models.PositiveIntegerField(
default=0,
)
です。
なので期待している挙動としましては、各buyerごとに保存されたcart_subtotalの値を
SUM_TOTAL に代入するという形です。
modelsはdjango.db.modelで間違えございません。
コードを整理して回答者が読めるように素直に普通に動くように(Class では動きませんし、buyer = buyerの後ろの,が抜けてたりとかします)質問を編集しましょう。この欄に書いてもしょうがないです。
回答1件
あなたの回答
tips
プレビュー