Django通用模型ListViews&形式

时间:2016-03-05 01:52:24

标签: python django django-views

从我的问题Django sharing one model between two others开始,探讨了一般管理两个相似模型及其依赖关系的最佳方法。我现在来到下一部分 - 意见。

经过一些调整后,我来到以下通用列表视图来表示对象。

这是连贯的吗?网址应该管理这样的模型吗?

我相信如果我改进他们的逻辑,我可以将这个项目列表子类化,并在将来添加额外的逻辑,因此它应该是面向未来的。

的课程
urls.py excerpt

urlpatterns = [
    url(r'^item/(?P<model>\w+)/$',views.ItemList.as_view(),name='generic'),
    url(r'^item/(?P<model>\w+)/(?P<pk>\d+)$',views.ItemList.as_view(),name='generic'),
]

views.py摘录

class ItemList(ListView):
    context_object_name = 'itemlist'
    template_name = 'food/item.html'
    model = None

    def get_queryset(self):
        model = apps.get_model('food',self.kwargs.get('model'))
        if self.kwargs.get('pk'):
            print ('pk provided')
            return model.objects.filter(pk=self.kwargs.get('pk'))
        else:
            print ('all')
            return model.objects.all()

food / item.html摘录(使用注册过滤器获取对象的类名)

{% block content %}
{% for item in itemlist %}
...
{% for review in item.reviews.all %}
{% endfor %}
...
<a href="/{{ item|to_class_name}}/{{ item.id }}/addreview" class="btn btn-default btn-block"><span class="glyphicon glyphicon-plus"> Add Review </span></a>
{% endblock %}

另外 - 我可以将这种态度带入我的表格中(再次假设当我添加评论时它会回归到它所来自的任何对象吗?)或者是我应该开始分解它的地方? / p>

0 个答案:

没有答案