2016-04-07 5 views
0

私は、ファイルページモデルに外部キーファイルがある2つのモデルファイルとファイルページを持つdjangoアプリケーションを実装しています。2つの異なるモデルから必要なフィールドを結合する

現在、私の見解は次のようになります。

Container  P  Bucket_type 

f1  p1  doc1 
f1  p2  doc2 
f1  p3  doc3 
f2  p4  doc4 
f2  p5  doc5 

私はにそれを変換したい:

Container  P   Bucket_type 

f1 p1,p2,p3  doc1,doc2,doc3 
f2 p4,p5  doc4,doc5 

コンテナ名は私のコンテナモデルと学生とバケットタイプのフィールドであるバケツのモデルであります。

更新日:

class Containers(models.Model): 
    name = models.CharField(max_length=30) 


class Bucket(models.Model): 
    file = models.ForeignKey(Container, on_delete=models.CASCADE, related_name='buckets') 
    bucket_number = models.IntegerField() 
    p = models.ForeignKey(P, null=True, blank=True) 
    bucket_type = models.ForeignKey(D, null=True, blank=True) 

は、現在、私はこのレコードを組み合わせた関数を記述しようとしていますが、私が私のデータベース内のレコードの大部分を持っているような組み合わせのリストを作るために時間を割いています。

Djangoのサードパーティのパッケージやその他のソリューションを使ってこのデータを作成する方法はありますか?

+0

私たちに実際のdjangoモデルを示すことができればよいでしょう。 – AKS

+1

ForeignKeyの代わりにManyToMany関係を使用することを検討してください。 – ruddra

+0

あなたのフィールドの値を結合しますか? 1つのフィールドにp1、p2、p3の値を連結し、他のフィールドにはp4、p5を連結しますか? –

答えて

1

あなたBucketモデルはあなたがYouModelにCharFieldですかCharfieldsを作成しようとすることができ、この

class Bucket(models.Model): 
    file = models.ForeignKey(Container, on_delete=models.CASCADE, related_name='buckets') 
    bucket_number = models.IntegerField() 
    student = models.ManyToManyField(Student, null=True, blank=True) 
    bucket_type = models.ManyToManyField(BucketType, null=True, blank=True) 
+0

https://docs.djangoproject.com/ja/1.9/topics/db/examples/many_to_many/ –

1

次のようになります。私はあなたが何をしたい「をお願いする必要があります最も便利な構築のために

patient1 = FilePage.objects.order_by('patient')[0] # -- [0] or other variant 
document1 = FilePage.objects.order_by('document_type')[0] # -- [0] or other variant 
YouModel.objects.order_by('charfield').update(charfield=patient1) # Something like this construction. 

? "、あなたが投稿したコメント。しかし、私はt do this because i havn t 50评価できます。

関連する問題