2016-04-07 17 views
0

Dosya modeli modelinde bir yabancı anahtar dosyasının bulunduğu iki model dosya ve dosya sayfam olan django uygulamasını yapıyorum.Gerekli alanları iki farklı modelden bir araya getirme

anda benim bakış şöyle görünür:

Container  P   Bucket_type 

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

konteyner adı alanı benim konteyner modelinde olduğu ve öğrenci ve kepçe tipi kepçe modelinde şunlardır:

Container  P  Bucket_type 

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

ben dönüştürmek istiyorum .

Güncel:

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) 

anda bu kayıtları birleştiren bir işlev yazmaya çalışıyorum ama benim veritabanında kayıtların kütleye sahip olduğu kombinasyonların listesini yapmak için zaman alıyor.

Django'nun üçüncü parti paketlerini veya başka bir çözümü kullanarak bu verileri oluşturmanın bir yolu var mı?

+0

Bize gerçek django modelini gösterebilirseniz daha iyi olurdu. – AKS

+1

ForeignKey yerine ManyToMany İlişkisi kullanmayı düşünün. – ruddra

+0

Tarlalarınızın değerlerini birleştirmek ister misiniz? Bir alanda p1, p2, p3 ve diğerlerinde p4, p5'in bitmiş değerleri mi istiyorsunuz? –

cevap

1

Sizin Bucket modeli Sen YouModel içinde Charfield veya Charfields oluşturmaya çalışın bu

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/en/1.9/topics/db/examples/many_to_many/ –

1

gibi görünmelidir: i Ne İster" You Ask gerekir En uygun inşaat için

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. 

? "ve yorum yazdınız. Ama ben t do this because i havn t 50 REPUTATION olabilir.

İlgili konular