Re: distinct related objects [solved]

2009-12-10 Thread andreas
and i solved it in the view. dont know if this is the right way but it
works:

def topic_detail(request, slug):
topic = get_object_or_404(Topic, slug=slug)
t = topic.project_set.all()
techlist = []
for p in t:
for t in  p.technologies.all():
if t in techlist:
pass
else:
techlist.append(t)
return object_list(request,
   queryset=topic.project_set.all(),
   template_name='myapp/topic_detail.html',
   extra_context={'object': topic, 'techlist':
techlist })



On Dec 10, 12:18 pm, andreas schmid  wrote:
> ok im still stucking on this one:
>
> i dont think the regroup tag can help in this case
> but i cant understand how i can query the technologies used within a
> specific topic.
>
> i mean i have alredy the projects assigned to this topic, now i need the
> technologies used by this projects.
>
> any ideas?
>
> Tim Valenta wrote:
> > It looks like the problem is that you're trying to group by
> > Technology, but your queryset is in Projects.  You could experiment
> > with the "regroup" template tag
> > (http://docs.djangoproject.com/en/dev/ref/templates/builtins/#regroup
> > )
>
> > It's a little hard to understand at first, but I think it's pretty
> > much what you're trying to do.  You would be able to remove the
> > ".distinct" part of your query because dictionary keys are already
> > can't be doubled.
>
> > Hope that helps.
>
> > Tim
>
> > On Nov 26, 7:04 am, andreas schmid  wrote:
>
> >> hi,
>
> >> i have a question about retrieving related objects avoiding double entries.
> >> actually i have 3 models:
> >>     topics
> >>     projects
> >>     technologies
>
> >> the projects model has foreignkeys to topics and technologies. i have a
> >> view for the topic detail like this:
>
> >>     def topic_detail(request, slug):
> >>         topic = get_object_or_404(Topic, slug=slug)
> >>         return object_list(request,
> >>                            queryset=topic.project_set.all(),
> >>                            paginate_by=20,
> >>                            template_name='FSlabs/topic_detail.html',
> >>                            extra_context={ 'topic': topic })
>
> >> in the template i can loop trough the projects and  get those  assigned
> >> to this topic.
> >> but im having problems to retrieve the technologies used by those
> >> projects without having double entries.
>
> >> i tried this in the template with a list for every project
> >> assigned...which of course is not what i want:
>
> >>     {% for project in object_list  %}
> >>             {% for technology in project.technologies.distinct %}
> >>                 {{
> >>     technology.title }}
> >>                 {% if forloop.last %}{% else %}
> >>                 {% ifequal forloop.revcounter0 1 %}and {% else %}, {%
> >>     endifequal %}
> >>                 {% endif %}
> >>             {% endfor %}
> >>         {% endfor %}
>
> >> can somebody point me to the right way to get what i need?
>
> >> thx
>
> > --
>
> > You received this message because you are subscribed to the Google Groups 
> > "Django users" group.
> > To post to this group, send email to django-us...@googlegroups.com.
> > To unsubscribe from this group, send email to 
> > django-users+unsubscr...@googlegroups.com.
> > For more options, visit this group 
> > athttp://groups.google.com/group/django-users?hl=en.
>
>

--

You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.




Re: distinct related objects

2009-12-10 Thread andreas schmid
ok im still stucking on this one:

i dont think the regroup tag can help in this case
but i cant understand how i can query the technologies used within a
specific topic.

i mean i have alredy the projects assigned to this topic, now i need the
technologies used by this projects.

any ideas?


Tim Valenta wrote:
> It looks like the problem is that you're trying to group by
> Technology, but your queryset is in Projects.  You could experiment
> with the "regroup" template tag
> ( http://docs.djangoproject.com/en/dev/ref/templates/builtins/#regroup
> )
>
> It's a little hard to understand at first, but I think it's pretty
> much what you're trying to do.  You would be able to remove the
> ".distinct" part of your query because dictionary keys are already
> can't be doubled.
>
> Hope that helps.
>
> Tim
>
> On Nov 26, 7:04 am, andreas schmid  wrote:
>   
>> hi,
>>
>> i have a question about retrieving related objects avoiding double entries.
>> actually i have 3 models:
>> topics
>> projects
>> technologies
>>
>> the projects model has foreignkeys to topics and technologies. i have a
>> view for the topic detail like this:
>>
>> def topic_detail(request, slug):
>> topic = get_object_or_404(Topic, slug=slug)
>> return object_list(request,
>>queryset=topic.project_set.all(),
>>paginate_by=20,
>>template_name='FSlabs/topic_detail.html',
>>extra_context={ 'topic': topic })
>>
>> in the template i can loop trough the projects and  get those  assigned
>> to this topic.
>> but im having problems to retrieve the technologies used by those
>> projects without having double entries.
>>
>> i tried this in the template with a list for every project
>> assigned...which of course is not what i want:
>>
>> {% for project in object_list  %}
>> {% for technology in project.technologies.distinct %}
>> {{
>> technology.title }}
>> {% if forloop.last %}{% else %}
>> {% ifequal forloop.revcounter0 1 %}and {% else %}, {%
>> endifequal %}
>> {% endif %}
>> {% endfor %}
>> {% endfor %}
>>
>> can somebody point me to the right way to get what i need?
>>
>> thx
>> 
>
> --
>
> You received this message because you are subscribed to the Google Groups 
> "Django users" group.
> To post to this group, send email to django-us...@googlegroups.com.
> To unsubscribe from this group, send email to 
> django-users+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/django-users?hl=en.
>
>
>
>   

--

You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.




Re: distinct related objects

2009-11-27 Thread Tim Valenta
It looks like the problem is that you're trying to group by
Technology, but your queryset is in Projects.  You could experiment
with the "regroup" template tag
( http://docs.djangoproject.com/en/dev/ref/templates/builtins/#regroup
)

It's a little hard to understand at first, but I think it's pretty
much what you're trying to do.  You would be able to remove the
".distinct" part of your query because dictionary keys are already
can't be doubled.

Hope that helps.

Tim

On Nov 26, 7:04 am, andreas schmid  wrote:
> hi,
>
> i have a question about retrieving related objects avoiding double entries.
> actually i have 3 models:
>     topics
>     projects
>     technologies
>
> the projects model has foreignkeys to topics and technologies. i have a
> view for the topic detail like this:
>
>     def topic_detail(request, slug):
>         topic = get_object_or_404(Topic, slug=slug)
>         return object_list(request,
>                            queryset=topic.project_set.all(),
>                            paginate_by=20,
>                            template_name='FSlabs/topic_detail.html',
>                            extra_context={ 'topic': topic })
>
> in the template i can loop trough the projects and  get those  assigned
> to this topic.
> but im having problems to retrieve the technologies used by those
> projects without having double entries.
>
> i tried this in the template with a list for every project
> assigned...which of course is not what i want:
>
>     {% for project in object_list  %}
>             {% for technology in project.technologies.distinct %}
>                 {{
>     technology.title }}
>                 {% if forloop.last %}{% else %}
>                 {% ifequal forloop.revcounter0 1 %}and {% else %}, {%
>     endifequal %}
>                 {% endif %}
>             {% endfor %}
>         {% endfor %}
>
> can somebody point me to the right way to get what i need?
>
> thx

--

You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.




distinct related objects

2009-11-26 Thread andreas schmid
hi,

i have a question about retrieving related objects avoiding double entries.
actually i have 3 models:
topics
projects
technologies

the projects model has foreignkeys to topics and technologies. i have a
view for the topic detail like this:

def topic_detail(request, slug):
topic = get_object_or_404(Topic, slug=slug)
return object_list(request,
   queryset=topic.project_set.all(),
   paginate_by=20,
   template_name='FSlabs/topic_detail.html',
   extra_context={ 'topic': topic })

in the template i can loop trough the projects and  get those  assigned
to this topic.
but im having problems to retrieve the technologies used by those
projects without having double entries.

i tried this in the template with a list for every project
assigned...which of course is not what i want:

{% for project in object_list  %}
{% for technology in project.technologies.distinct %}
{{
technology.title }}
{% if forloop.last %}{% else %}
{% ifequal forloop.revcounter0 1 %}and {% else %}, {%
endifequal %}
{% endif %}
{% endfor %}
{% endfor %}

can somebody point me to the right way to get what i need?

thx

--

You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-us...@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.