質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

654閲覧

django ファイル間でリレーション

art35

総合スコア13

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/08/06 07:24

Djangoでアプリ作成中の初学者です。
appを複数作成してその内容をまとめたappを作成して
それぞれとリレーションを組みたいのですが、
別のディレクトリにあるモデルとのリレーションの組み方が見つかりません。

ご教授いただけないでしょうか。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2021/08/07 00:13 編集

なにが分かっていて、なにに困っているのかがわからず、なにを回答したらいいのかとなります。 今書いてあるコードが最低限要るんじゃないでしょうか。
art35

2021/08/17 01:57

投稿に不慣れで申し訳ございません。 昨日この問題については解決いたしました。 次回からコードも貼り付けます。
guest

回答1

0

自己解決

解決しましたので書いておきます。
appを作成してTeamModelを作成↓

python

1team models.py 2 3import datetime 4from django.db import models 5from django.urls import path 6 7class TeamModel(models.Model): 8 team = models.CharField('チーム', max_length=50, null=True, blank=True, default='') 9 def __str__(self): 10 return str(self.team) 11 class Meta: 12 verbose_name_plural="チーム登録"

別のappを作成して、TeamModelをimportしてInsLedger1モデルで

python

1team = models.ForeignKey(TeamModel, on_delete=models.CASCADE)

これでリレーションは組めました。
詳しくはわかりませんが、どちらのappでも反映はされています。

python

1ins_ledger models.py 2 3import datetime 4from dateutil.relativedelta import relativedelta 5from django.db import models 6from dateutil.relativedelta import relativedelta 7from team.models import TeamModel 8from line.models import LineModel 9from mdevice.models import Device 10from process.models import Process 11from item.models import Item 12from product_num.models import Product_num 13from useapp.models import Useapp 14from spec_etc.models import Spec1, Spec2 15from django.utils.timezone import now 16 17 18 19MEASURING_INS_GROUP_CHOICES = ( 20 (1,'マイクロメータ'), 21 (2,'ノギス'), 22 (3,'内径'), 23 (4,'スナップメータ'), 24 (5,'ハイトゲージ'), 25 (6,'ダイヤルゲージ'), 26 (7,'ピンゲージ'), 27 (8,'リングゲージ'), 28 (9,'マスターゲージ'), 29 (10,'大型'), 30 (11,'その他'), 31 (12,'外部'), 32) 33 34CALIBRATION_CHOICES = ( 35 (1,'1年校正'), 36 (2,'2年校正'), 37 (5,'5年校正'), 38 (10,'10年校正'), 39) 40 41SPEC3_CHOICES = ( 42 (1, 'A'), 43 (2, 'D'), 44) 45 46class InsLedger1(models.Model): 47 measuring_ins_group = models.IntegerField(choices=MEASURING_INS_GROUP_CHOICES,default=1) 48 measuring_tool = models.ForeignKey(Device, on_delete=models.CASCADE) 49 ins_num = models.CharField(max_length=10) 50 calibration_type = models.IntegerField(choices=CALIBRATION_CHOICES) 51 calibration_date = models.DateTimeField(default=now)#datetime.datetime.now()) 52 next_calibration_date = models.DateTimeField() 53 serial_num = models.CharField(max_length=20, null=True, blank=True, default='') 54 product_num = models.ForeignKey(Product_num, on_delete=models.CASCADE) 55 team = models.ForeignKey(TeamModel, on_delete=models.CASCADE) 56 line = models.ForeignKey(LineModel, on_delete=models.CASCADE) 57 process = models.ForeignKey(Process, on_delete=models.CASCADE) 58 useapp = models.ForeignKey(Useapp, on_delete=models.CASCADE) 59 spec1 = models.ForeignKey(Spec1, on_delete=models.CASCADE) 60 spec2 = models.ForeignKey(Spec2, on_delete=models.CASCADE) 61 spec3 = models.IntegerField(choices=SPEC3_CHOICES) 62 item = models.ForeignKey(Item, on_delete=models.CASCADE) 63 64 def save(self, *args, **kwargs): 65 auto_now = kwargs.pop('next_calibration_date_auto_now', True) 66 if auto_now: 67 if self.calibration_type == CALIBRATION_CHOICES[0]: 68 calibration_span = 1 69 self.next_calibration_date = self.calibration_date + relativedelta(years=calibration_span) 70 super().save(*args, **kwargs) 71 72 def __str__(self): 73 return str(self.measuring_tool) 74 75 class Meta: 76 verbose_name = "m" 77コードTeam

投稿2021/08/20 01:44

art35

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問