Django urls.py in a Javascript-heavy site
Transcript of Django urls.py in a Javascript-heavy site
Django urls.py in a Javascript-heavy site
Sebastien Mirolo@seabasscapoeira
REST-driven Django site
How do I “reverse” my API end points?
Basic hack: string suffixurls.py
url(r‘^api/billing/(?P<organization>[a-z0-9\-]+)/’, DetailAPIView.as_view(), name=‘api_detail’),url(r‘^api/billing/’, ListAPIView.as_view(), name=‘api_base’),url(r‘^billing/’, TemplateView.as_view( template_name=‘billing.hmtl’), name=‘list’),
billing.html<script type=“text/javascript”> app.constant('urls', { api_base : "{% url ‘api_base' %}”});</script>
app.js$http.get(urls.api_base, params: {q: val});
What if I cannot use suffixes?
url(r’^api/(?P<organization>[a-zA-Z0-9\-]+)/’, include(‘urls.api.billing’), decorators=[‘django.contrib.auth.decorators.login_required’]),
I use https://github.com/mila/django-urldecoratorsto add security checks and my urls.py look like:
Real hack: string replace
views.pykwargs.update({‘organization’: ‘PAT-organization’});api_pattern = reverse(‘api_detail’, *args, **kwargs);
app.js$http.get(urls.api_detail.replace(‘PAT-organization’, val));
Real life examplesfrom
github.com/djaodjin/djaodjin-saasThank You
Sebastien Mirolo@seabasscapoeira