首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使django泛型视图的urls自动化?

如何使django泛型视图的urls自动化?
EN

Stack Overflow用户
提问于 2014-02-25 00:42:24
回答 2查看 135关注 0票数 1

我为我的项目子类Django的泛型视图。我广泛地使用它们在我们的前端站点上创建基本的CRUD视图。有些模型只有一个创建视图,有些模型具有读取和更新等功能。

这很好,但我仍然为每个URL编写了一行代码。ie:

url(r'^referrer/create/$',ReferrerCreateView.as_view(),name='referrer_create'),url(‘^referrer/$’,ReferrerListView.as_view(),name='referrer_list'),url(r'^referrer/(?P\d+)/update/$',ReferrerUpdateView.as_view(), 名称=‘referrer_update’),

然后,我对每个模型和模型所拥有的视图都这样做。对我来说,这似乎不是一个非常枯燥的方法。对于为模型创建的任何一般视图,是否有一种自动化这些urls的好方法?

EN

回答 2

Stack Overflow用户

发布于 2014-02-25 09:07:46

解决方案是创建一个方法,该方法将返回给定一组视图的url()调用列表。有点像

代码语言:javascript
复制
views = {
    'base_name': 'referrer',
    'create_view': ReferrerCreateView,
    'list_view': ReferrerListView,
    'update_view': ReferrerUpdateView,
}

def generate_urls(views):
    return [
        url(r'^%s/create/$' % views['base_name'], views['create_view'].as_view(), '%s_create' % views['base_name'],
        # and so on
    ]

那你只需要做

代码语言:javascript
复制
urlpatterns = patterns('', *generate_urls(views))

对于你拥有的每一组视图。

话虽如此,我相信你不应该做这个。此解决方案(或任何不同的实现)过于复杂,如果出现问题,将增加一个额外的层。

拥有一些样板代码(特别是配置代码)没有什么错,因为它使您今后的调试更加容易。

票数 1
EN

Stack Overflow用户

发布于 2014-02-25 14:41:07

我也有同样的关切,在此我也有同感,在此之前,一个答案是django rest框架的使用,因为它自己实现了这样的url模式!我还没经历过这个解决方案。

我的解决办法是为每个型号的crud操作创建一个专用文件。通过该解决方案,我减少了匹配时间,并将相关的模型模式分组到一个文件中。但我知道这不能完全解决你的问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22002317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档