0

私は顧客の静的情報を持っています

class Customer(models.Model):
    name = models.CharField(max_length=256)

そして、毎日のデータを含む彼の携帯電話の状態の DWH スタイル テーブル:

class Phone(models.Model):
    imei = models.CharField(max_length=64)
    day = models.DateField()
    param1 = models.INtegerField()
    param2 = models.INtegerField()

私の質問は、収集したレコードには顧客の知識がなく、一度接続したいので、電話 IMEI を使用して顧客と毎日の電話レコードの間に foreinKey ManytoMany などの「自動」関係を作成できますか? IMEI を介してすべての電話レコードに顧客を一度だけ追加することで、次のような第 3 テーブルを追加します

class CutomerIMEI(models.Model):
    customer = models.ForeignKey(Site)
    imei = models.CharField(max_length=64)

だから私は phone.customer と customer.phones.filter(day='some day') を行うことができました

ありがとう、シェイ

4

2 に答える 2

1

imeiフィールドを実際のForeignKeyとして定義することを除いて、ほとんどそこにいると思いますCustomerIMEI-次のように、ターゲットテーブルでリンクするフィールドを指定できます。

imei = models.ForeignKey(Phone, to_field='imei')

これで、 Customer からの多対多リレーションシップCustomerIMEIのフィールドとしてそれを使用できます。through

phones = models.ManyToManyField(Phone, through=CustomerIMEI)

これで、提案された構文customer.phones.filter(day='some day')が機能します。

于 2013-09-24T13:47:26.847 に答える
0

多対多の追加フィールドを探していませんか?

于 2013-09-24T13:20:59.157 に答える