Django如何制作灵活的通用视图

时间:2017-09-27 19:46:39

标签: django django-views dry django-class-based-views

如何制作灵活的通用视图?

目前我有两个模型,一个用于苹果,一个用于梨,还有一个我想要使用的模板。

from django.views import generic

class AppleIndexView(generic.ListView):
   template_name = 'fruit/index.html'
   context_object_name = 'apple_list'

   def get_queryset(self):
     return Apple.objects.values()

class PearIndexView(generic.ListView):
   template_name = 'fruit/index.html'
   context_object_name = 'pear_list'

   def get_queryset(self):
     return Pear.objects.values()

有没有办法更干?应该有更好的方法。

感谢您的时间

编辑其他请求

有人可以将此示例写成统一视图,是否可以解除绑定到一个模型。所以我可以看到它应该是。

1 个答案:

答案 0 :(得分:0)

实际上,您只需要提供模型或查询集,如果您遵循主体,则不需要提供template_name或context_object_name,在列表模板中,您可以访问context_object名称:

 modelname_list 

或只是

object_list

如果你不提供。 在

中创建模板
app_dir/templates/app_dir/<model_name>_list.html 

你不需要任何其他东西。