2009-05-29 16 views
14

मेरे पास कई सारे वर्ग हैं जिनमें बहुत से रिश्ते हैं। मैं पहली कक्षा से एक का चयन करना चाहता हूं और संबंधित वर्ग के क्षेत्रों तक पहुंच बनाना चाहता हूं। ऐसा लगता है कि यह आसान होना चाहिए। उदाहरण के लिए:Django में, आप कई से कई संबंधित वर्गों का क्षेत्र कैसे प्राप्त करते हैं?

class Topping(models.Model): 
    name = models.CharField(max_length=40) 

class Pizza(models.Model): 
    name = models.CharField(max_length=40) 
    toppings = models.ManyToManyField(Topping) 

इसलिए मैं कुछ ऐसा करना चाहते हैं चाहते हैं:

Pizza.objects.filter(name = 'Pizza 1')[0].toppings[0] 

लेकिन यह मेरे लिए काम नहीं करता। किसी भी मदद के लिए धन्यवाद।

उत्तर

26

प्रयास करें: check out the documentation

>>> Affiliate.objects.filter(first_name = 'Paolo')[0] 
<Affiliate: Paolo Bergantino> 
>>> Affiliate.objects.filter(first_name = 'Paolo')[0].clients 
<django.db.models.fields.related.ManyRelatedManager object at 0x015F9770> 
>>> Affiliate.objects.filter(first_name = 'Paolo')[0].clients[0] 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
TypeError: 'ManyRelatedManager' object is unindexable 
>>> Affiliate.objects.filter(first_name = 'Paolo')[0].clients.all() 
[<Client: Bergantino, Amanda>] 
>>> Affiliate.objects.filter(first_name = 'Paolo')[0].clients.all()[0] 
<Client: Bergantino, Amanda> 

क्यों यह काम करता है के बारे में अधिक के लिए,:

Pizza.objects.filter(name = 'Pizza 1')[0].toppings.all()[0] 

यह मेरे लिए काम करता है (विभिन्न मॉडलों, लेकिन यह विचार एक ही है)।

+0

ग्रेट। धन्यवाद। – Mitch

संबंधित मुद्दे