Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Querying Many to many fields in django template

This may not be relevant but just wanted to ask,

IF an object is passed from views to template and in the template will i be able to query many to many fields

Models code:

  class Info(models.Model):
     xls_answer  = models.TextField(null=True,blank=True)


  class Upload(models.Model):
     access = models.IntegerField()
     info = models.ManyToManyField(Info)
     time = models.CharField(max_length=8, null=True,blank=True)
     error_flag = models.IntegerField()

     def __unicode__(self):
        return self.access

Views:

         // obj_Arr  contains all the objects of upload
        for objs in obj_Arr:
           logging.debug(objs.access)
           logging.debug(objs.time)


        return render_to_response('upload/new_index.html', {'obj_arr': obj_Arr , 'load_flag' : 2})

In template is it possible to decode the many to many field since we are passing the object

Thanks..

like image 885
Hulk Avatar asked Aug 05 '10 05:08

Hulk


People also ask

How do you query many-to-many fields?

When querying many-to-many relationships, avoid using multiple filter() methods, make use of Q() objects instead. You can check the SQL query of a QuerySet with str(queryset. query) . Check the performance of recently executed SQL queries with django.


1 Answers

In general, you can follow anything that's an attribute or a method call with no arguments through pathing in the django template system.

For the view code above, something like

{% for objs in obj_arr %}
{% for answer in objs.answers.all %}
  {{ answer.someattribute }}
{% endfor %}
{% endfor %}

should do what you're expecting.

(I couldn't quite make out the specifics from your code sample, but hopefully this will illuminate what you can get into through the templates)

like image 148
heckj Avatar answered Oct 10 '22 15:10

heckj