【问题标题】:How reverse an include pattern path in Django如何在 Django 中反转包含模式路径
【发布时间】:2020-12-14 14:11:08
【问题描述】:

您好,我想知道如何反转使用包含模式的 urlpattern 路径。由于没有命名空间,我不知道如何反转它。 我也是 Django 的新手,所以这一切对我来说有点奇怪。

v1_api = Api(api_name='v1')
urlpatterns = [path('', include(v1_api.urls))] + restless.get_urls()

我想用reverse('something')from django.urls import reverse

  class SiteResource(ModelResource):      
    baselayer = fields.ToOneField(
    'DataLayerResource',        
    'baselayer',
     null=True)

 class Meta(ModelResource.Meta):        
      queryset = models.Site.objects.all()        
      resource_name = 'site'        
      authorization = SiteAuthorization()       
      validation = CleanedDataFormValidation(form_class=SiteForm)        
      detail_allowed_methods = ['get', 'post', 'put', ]        
      list_allowed_methods = ['get', 'post']        
      excludes = []        
      abstract = False        
      filtering = {            
      'site_name': ALL,            
      'verbose_site_name': ALL,            
      'site_id': ALL,            
      'site_path': ALL,            
      'extent': ALL,        
}

【问题讨论】:

    标签: django tastypie


    【解决方案1】:

    根据 Tastypie 的源代码,您可以在 here 上找到一些已实现的标准方法

    在 Tastypie 中反转 URL 的基本模式是

    a = reverse('<method>', kwargs={'resource_name': '<name of the resource>', 'api_name': '<api_name>'})
    

    在您的情况下,假设您想要api_dispatch_list 的 URL。您的资源名称是site,api_name 是v1

    所以这种情况下的 URL 是

    url = reverse('api_dispatch_list', kwargs={'resource_name': 'site', 'api_name': 'v1'})
    

    会出来给/api/v1/site/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      • 2022-12-01
      • 2015-03-31
      • 1970-01-01
      • 2019-10-18
      相关资源
      最近更新 更多