タグ付けされた質問 「django-models」

WebフレームワークDjangoのモデルクラスの使用に関する質問。

3
2つのフィールドに一意のIDを作成する方法はありますか?
これが私のモデルです: class GroupedModels(models.Model): other_model_one = models.ForeignKey('app.other_model') other_model_two = models.ForeignKey('app.other_model') 基本的に、私が欲しいのはother_model、このテーブルで一意であることです。レコードがある場合ことを意味other_model_oneidがあるが123、私は別のレコードを使用して作成できるようにするべきではないother_model_twoとして、ID 123。オーバーライドはできるcleanと思いますが、djangoに何かが組み込まれているのではないかと思っていました。 PSQLでバージョン2.2.5を使用しています。 編集:これは、一緒に不平等な状況ではありません。私はレコードを追加した場合other_model_one_id=1、その他other_model_two_id=2、私は別のレコードを追加できないようにする必要がありother_model_one_id=2、その他other_model_two_id=1

1
1つのテーブル「django_migrations」のみを使用して、Djangoで複数のデータベースを使用します
Djangoのプロジェクトでは、デフォルトとリモートの 2つのデータベースを使用する必要があります。私が作成しrouters.py、すべてが正常に動作します。 リモートデータベースにテーブルを作成する必要があり、移行を作成して実行し、テーブルdjango_migrationsを作成しました。django_migrationsデフォルトのデータベースに、テーブルを1つだけ含めたいです。 の関連部分routers.pyはここにあります: class MyRouter(object): # ... def allow_migrate(self, db, app_label, model_name=None, **hints): if app_label == 'my_app': return db == 'remote' return None 私はこのように移行を実行します: python manage.py migrate my_app --database=remote 今私がするとき: python manage.py runserver 次の警告が表示されます。 未適用の移行が1つあります。アプリの移行を適用するまで、プロジェクトは正常に機能しない可能性があります:my_app。 それらを適用するには、「python manage.py migrate」を実行します。 のテーブルmy_appがremoteデータベースに作成され、データベースdjango_migrations内でremote移行が適用済みとしてマークされます。 編集: Djangoに強制的に1つのテーブルのみを使用django_migrationsさせ、それでも移行を別のデータベースに適用する方法は? 警告が発生しないように移行を異なるデータベースに適用する方法は?

1
create()をオーバーライドする代わりに、Django models.Managerでcreate_foo()を定義するのはなぜですか?
Djangoのドキュメントを読んで、マネージャのFooようcreate_fooに定義することによって名前が付けられたモデルのカスタム作成メソッドを作成することをお勧めします。 class BookManager(models.Manager): def create_book(self, title): book = self.create(title=title) # do something with the book return book class Book(models.Model): title = models.CharField(max_length=100) objects = BookManager() book = Book.objects.create_book("Pride and Prejudice") 私の質問は、前のcreate方が基本クラスのメソッドを単にオーバーライドするよりも好ましい理由です: class BookManager(models.Manager): def create(self, title): book = self.model(title=title) # do something with the book book.save() return book class Book(models.Model): …

5
2つのオプションで1つの必須の外部キーを持つモデルの作成
私の問題は、2つの外部キーのいずれかを使用して、どのようなモデルであるかを示すことができるモデルがあることです。両方ではなく、少なくとも1つは取得したい。これを1つのモデルのままにすることはできますか、それとも2つのタイプに分割する必要がありますか?これがコードです: class Inspection(models.Model): InspectionID = models.AutoField(primary_key=True, unique=True) GroupID = models.ForeignKey('PartGroup', on_delete=models.CASCADE, null=True, unique=True) SiteID = models.ForeignKey('Site', on_delete=models.CASCADE, null=True, unique=True) @classmethod def create(cls, groupid, siteid): inspection = cls(GroupID = groupid, SiteID = siteid) return inspection def __str__(self): return str(self.InspectionID) class InspectionReport(models.Model): ReportID = models.AutoField(primary_key=True, unique=True) InspectionID = models.ForeignKey('Inspection', on_delete=models.CASCADE, null=True) Date …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.