Created
December 30, 2013 08:57
-
-
Save spout/8179573 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from django.db import models | |
from django.core.urlresolvers import reverse | |
from django.conf.urls import url, patterns | |
from common.views import AutomagicListView, AutomagicDetailView, AutomagicCreateView, AutomagicUpdateView,\ | |
AutomagicDeleteView | |
class AutomagicModel(models.Model): | |
class Meta: | |
abstract = True | |
def get_absolute_url(self): | |
return reverse(self.get_absolute_url_alias(), kwargs={'pk': self.pk}) | |
def get_create_url(self): | |
return reverse(self.get_create_url_alias()) | |
def get_index_url(self): | |
return "/%s/%s/" % (self._meta.app_label, self._meta.module_name) | |
def get_delete_url(self): | |
return reverse(self.get_delete_url_alias(), kwargs={'pk': self.pk}) | |
def get_update_url(self): | |
return reverse(self.get_update_url_alias(), kwargs={'pk': self.pk}) | |
def get_absolute_url_regexp(self): | |
return "^%s/(?P<pk>\d+)-(?P<slug>[-\w\d]+)/$" % (self._meta.module_name) | |
def get_create_url_regexp(self): | |
return '^%s/create/$' % (self._meta.module_name) | |
def get_index_url_regexp(self): | |
return "^%s/$" % (self._meta.module_name) | |
def get_delete_url_regexp(self): | |
return "^%s/delete/(?P<pk>\d+)/$" % (self._meta.module_name) | |
def get_update_url_regexp(self): | |
return "^%s/update/(?P<pk>\d+)/$" % (self._meta.module_name) | |
def get_absolute_url_alias(self): | |
return "%s_%s_absolute" % (self._meta.app_label, self._meta.module_name) | |
def get_create_url_alias(self): | |
return '%s_%s_create' % (self._meta.app_label, self._meta.module_name) | |
def get_index_url_alias(self): | |
return "%s_%s_index" % (self._meta.app_label, self._meta.module_name) | |
def get_delete_url_alias(self): | |
return "%s_%s_delete" % (self._meta.app_label, self._meta.module_name) | |
def get_update_url_alias(self): | |
return "%s_%s_update" % (self._meta.app_label, self._meta.module_name) | |
def build_generic_CRUD_urls(self, model_class): | |
return patterns( | |
'django.views.generic', | |
url( | |
self.get_index_url_regexp(), | |
AutomagicListView.as_view(model=model_class), | |
name=self.get_index_url_alias() | |
), | |
url( | |
self.get_absolute_url_regexp(), | |
AutomagicDetailView.as_view(model=model_class), | |
name=self.get_absolute_url_alias() | |
), | |
url( | |
self.get_create_url_regexp(), | |
AutomagicCreateView.as_view(model=model_class), | |
name=self.get_create_url_alias() | |
), | |
url( | |
self.get_update_url_regexp(), | |
AutomagicUpdateView.as_view(model=model_class), | |
name=self.get_update_url_alias() | |
), | |
url( | |
self.get_delete_url_regexp(), | |
AutomagicDeleteView.as_view(model=model_class), | |
name=self.get_delete_url_alias() | |
), | |
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from django.views.generic import ListView, DetailView, CreateView, UpdateView, DeleteView | |
class AutomagicListView(ListView): | |
pass | |
class AutomagicDetailView(DetailView): | |
pass | |
class AutomagicCreateView(CreateView): | |
pass | |
class AutomagicUpdateView(UpdateView): | |
pass | |
class AutomagicDeleteView(DeleteView): | |
pass |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment