0

Is there any way to get a list of objects of one class without creating a dedicated view just using maybe TemplateView.as_view() and a template?

frlan
  • 6,950
  • 3
  • 31
  • 72
  • I'm not sure I know what you are asking here. If you are trying to get a dictionary of attributes for the specific instance where does your template come in? Do you mean you would like to list them? i.e. ``instance.__dict__`` When you say ``objects`` do you mean a list of all instantiated objects from your class? i.e. http://stackoverflow.com/questions/1535327/python-how-to-print-a-class-or-objects-of-class-using-print – Glyn Jackson Oct 12 '14 at 16:45

2 Answers2

1

In fact, you need something, that will be returning a response object. That is what view actually is.

If you don't want to declare view as function or class, you can use lambda-functions. Here is example of working urls.py:

from django.conf.urls import url
from django.contrib.auth.models import User

from django.shortcuts import render_to_response



urlpatterns = [
        url(r'^test/$', lambda request: render_to_response('testapp/test.html', {'users': User.objects.filter()})),
]

I created anonymous function and returned response with objects I need and specified path to template.

coldmind
  • 5,167
  • 2
  • 22
  • 22
1

Sure. You can use assignment tag(write this in template tag library). Assignment tag docs

@register.assignment_tag
def my_tag():
    return Product.objects.all()

In template(TemplateView - no problem)

{% my_tag as my_tag %}
{% for item in my_tag %}
    {{ item.name }}
{% endfor %}
nnmware
  • 930
  • 5
  • 15