0

私はこのような3つのクラスを持っています:

class Person (models.Model)
   name = models.CharField(max_length=200)

class Device (models.Model)
   mobile = models.CharField(max_length=200)

class Uses (models.Model)
   ....
 person_name =  models.ForeignKey(Person)
 person_device = models.ForeignKey(Device)

私の質問は次のとおりです。「名前」の人が使用するデバイスを取得するクエリを作成するにはどうすればよいですか? uses クラスを通過する必要があります。

4

3 に答える 3

0

これは、あなたが書いたものがあなたのクラスの唯一のもの、つまりあなたのmodels.pyファイル全体であると仮定しています。

これらのテーブルをリンクする方法を知りたいと思います。答えは簡単です。テーブル間の関係を作成するために、django が提供する多くの関係ファイルの 1 つを使用するだけです。

関係が異なる場合があります。2 つのテーブル間の関係がどのように機能するかが重要になる場合もあります。Django はこれらすべてを可能にします。こちらのドキュメントをご覧ください。最初に関係の種類を確立する必要があるため、 aPersonが many を持つことができるとしDevicesます。したがって、これはあなたの新しいPersonクラスがどのように見えるかです:

class Person (models.Model)
   name = models.CharField(max_length=200)

そして、これはあなたのDeviceクラスがどのように見えるかです:

class Device (models.Model)
   mobile = models.CharField(max_length=200)
   user = model.ForeignKey(Person)

Personクラスを変更しないことに注意してください。これはMany-To-One、django で関係がどのように機能するかです。上記のドキュメント リンクで、これがどのように機能するかを確認できます。

クエリに関しては、次のように簡単に実行できます。

Device.objects.filter(user__name='<name_you_want>')
于 2013-07-23T16:26:29.307 に答える