本文整理汇总了Python中rest_framework.routers.DefaultRouter类的典型用法代码示例。如果您正苦于以下问题:Python DefaultRouter类的具体用法?Python DefaultRouter怎么用?Python DefaultRouter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DefaultRouter类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_flatten_url_tree_url_import_with_routers
def test_flatten_url_tree_url_import_with_routers(self):
class MockApiViewSet(ModelViewSet):
serializer_class = CommentSerializer
model = User
class AnotherMockApiViewSet(ModelViewSet):
serializer_class = CommentSerializer
model = User
router = DefaultRouter()
router.register(r'other_views', MockApiViewSet)
router.register(r'more_views', MockApiViewSet)
urls_app = patterns('', url(r'^', include(router.urls)))
urls = patterns(
'',
url(r'api/', include(urls_app)),
url(r'test/', include(urls_app))
)
urlparser = UrlParser()
apis = urlparser.get_apis(urls)
self.assertEqual(sum(api['path'].find('api') != -1 for api in apis), 4)
self.assertEqual(sum(api['path'].find('test') != -1 for api in apis), 4)
示例2: Restify
class Restify(object):
def __init__(self):
# get restify specific settings
self.settings = getattr(settings, 'RESTIFY', {})
self.IGNORE_LIST = ['^django*', '^api$', '^rest_framework*',
'^auth*'] + self.settings.get('IGNORE_LIST', [])
self.router = None
self.viewsets = {} # viewsets
self.apps()
def slugify(self, value):
try:
value = unicodedata.normalize('NFKD', value).encode(
'ascii', 'ignore').decode('ascii')
except:
pass
value = re.sub('[^\w\s-]', '', value).strip().lower()
return re.sub('[-\s]+', '-', value)
def get_apps(self):
return apps.app_configs
def apps(self):
all_apps = self.get_apps()
MODELS = self.settings.get('MODELS', None)
for app, app_config in all_apps.items():
# Check if user is in ignored list
found = [ignore_pattern for ignore_pattern in self.IGNORE_LIST
if re.findall(ignore_pattern, app_config.name)]
if found:
continue
for model in app_config.get_models():
if MODELS and model._meta.model_name not in MODELS:
continue
url = self.slugify(model._meta.verbose_name_plural.title())
view = Views()
viewset = view.get_viewsets(model)
self.viewsets[url] = viewset
def register(self):
self.router = DefaultRouter()
for url, viewset in self.viewsets.items():
self.router.register(url, viewset)
# special case fo User model
user_viewset = get_user_viewset()
self.router.register('users', user_viewset)
return self.router
def router(self):
return self.router
示例3: setUp
def setUp(self):
router = DefaultRouter()
router.register('example1', Http404ExampleViewSet, base_name='example1')
router.register('example2', PermissionDeniedExampleViewSet, base_name='example2')
self.patterns = [
url('^example/?$', ExampleListView.as_view()),
url(r'^', include(router.urls))
]
示例4: TestNameableRoot
class TestNameableRoot(TestCase):
def setUp(self):
class NoteViewSet(viewsets.ModelViewSet):
model = RouterTestModel
self.router = DefaultRouter()
self.router.root_view_name = 'nameable-root'
self.router.register(r'notes', NoteViewSet)
self.urls = self.router.urls
def test_router_has_custom_name(self):
expected = 'nameable-root'
self.assertEqual(expected, self.urls[0].name)
示例5: TestRootWithAListlessViewset
class TestRootWithAListlessViewset(TestCase):
def setUp(self):
class NoteViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet):
model = RouterTestModel
self.router = DefaultRouter()
self.router.register(r"notes", NoteViewSet)
self.view = self.router.urls[0].callback
def test_api_root(self):
request = factory.get("/")
response = self.view(request)
self.assertEqual(response.data, {})
示例6: TestNameableRoot
class TestNameableRoot(TestCase):
def setUp(self):
class NoteViewSet(viewsets.ModelViewSet):
queryset = RouterTestModel.objects.all()
self.router = DefaultRouter()
self.router.root_view_name = 'nameable-root'
self.router.register(r'notes', NoteViewSet)
self.urls = self.router.urls
def test_router_has_custom_name(self):
expected = 'nameable-root'
assert expected == self.urls[-1].name
示例7: GeoModelViewSetTestCase
class GeoModelViewSetTestCase(SimpleQueryTestCase):
def setUp(self):
self.router = DefaultRouter()
self.router.register(r'locations', LocationViewSet)
self.view = LocationViewSet.as_view({'get': 'list'})
def test_renderer(self):
request = factory.get('/locations/',
HTTP_ACCEPT=GeoJSONRenderer.media_type)
response = self.view(request)
self.assertIsInstance(response.accepted_renderer, GeoJSONRenderer)
def test_register(self):
self.assertGreater(len(self.router.urls), 0)
示例8: test_exclude_router_api_root
def test_exclude_router_api_root(self):
class MyViewSet(ModelViewSet):
serializer_class = CommentSerializer
model = User
router = DefaultRouter()
router.register('test', MyViewSet)
urls_created = len(router.urls)
parser = UrlParser()
apis = parser.get_apis(router.urls)
self.assertEqual(4, urls_created - len(apis))
示例9: RasterViewSetTestCase
class RasterViewSetTestCase(SimpleTestCase):
def setUp(self):
self.router = DefaultRouter()
self.router.register(r'rasters', RasterViewSet)
self.view = RasterViewSet.as_view({'get': 'list'})
def test_renderer(self):
request = factory.get('/rasters/',
HTTP_ACCEPT=GeoTIFFZipRenderer.media_type)
response = self.view(request)
self.assertEqual(response['Content-Type'],
GeoTIFFZipRenderer.media_type)
def test_register(self):
self.assertGreater(len(self.router.urls), 0)
示例10: setUp
def setUp(self):
class NoteViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet):
model = RouterTestModel
self.router = DefaultRouter()
self.router.register(r"notes", NoteViewSet)
self.view = self.router.urls[0].callback
示例11: setUp
def setUp(self):
class NoteViewSet(viewsets.ModelViewSet):
model = RouterTestModel
self.router = DefaultRouter()
self.router.root_view_name = 'nameable-root'
self.router.register(r'notes', NoteViewSet)
self.urls = self.router.urls
示例12: register
def register(self):
self.router = DefaultRouter()
for url, viewset in self.viewsets.items():
self.router.register(url, viewset)
# special case fo User model
user_viewset = get_user_viewset()
self.router.register('users', user_viewset)
return self.router
示例13: test_flatten_url_tree_url_import_with_routers
def test_flatten_url_tree_url_import_with_routers(self):
class MockApiViewSet(ModelViewSet):
serializer_class = CommentSerializer
model = User
class AnotherMockApiViewSet(ModelViewSet):
serializer_class = CommentSerializer
model = User
router = DefaultRouter()
router.register(r"other_views", MockApiViewSet)
router.register(r"more_views", MockApiViewSet)
urls_app = patterns("", url(r"^", include(router.urls)))
urls = patterns("", url(r"api/", include(urls_app)), url(r"test/", include(urls_app)))
urlparser = UrlParser()
apis = urlparser.get_apis(urls)
self.assertEqual(sum(api["path"].find("api") != -1 for api in apis), 4)
self.assertEqual(sum(api["path"].find("test") != -1 for api in apis), 4)
示例14: get_router
def get_router():
"""
Get a Django REST Framework router instance with all viewsets.
:rtype: rest_framework.routers.DefaultRouter
"""
router = DefaultRouter()
router.register(r'projects', ProjectViewSet)
router.register(r'issues', IssueViewSet)
router.register(r'comments', CommentViewSet)
return router
示例15: DefaultRouter
from django.conf import settings
from django.conf.urls import include, url
from rest_framework.routers import DefaultRouter
from .views import DiscretizedDataPointViewSet
router = DefaultRouter()
router.register(r'discretized_data_points', DiscretizedDataPointViewSet)
urlpatterns = [
url(r'^api/' + settings.API_VERSION + '/', include(router.urls)), # TODO makes sense to have a settings.API_BASE_URL rather than a settings.API_VERSION?
]