Django-spaceview is 'n Django app wat kan pa app afhanklikheid in herbruikbare aansoeke, voorwerp en konteks toegang behulp naamruimtes en klas basis uitsig.
Installeer
In settings.py:
Installeer die app:
& Nbsp; & nbsp; & nbsp; INSTALLED_APPS = [
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'Spaceview',
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; ]
voeg die middleware
& Nbsp; & nbsp; & nbsp; MIDDLEWARE_CLASSES = [
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; "Spaceview.middleware.SpaceviewMiddleware"
& Nbsp; & nbsp; & nbsp; ]
die veranderlike SPACEVIEW_SPACES skep as 'n lys van die ruimte uitsig
& Nbsp; & nbsp; & nbsp; # Settings.py
& Nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; SPACEVIEW_SPACES = [
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 'Myproject.apps.myapp.views.MyappSpace',
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; ]
& Nbsp; & nbsp; & nbsp; ...
Skep die ruimte View in jou herbruikbare app en behandel dit soos 'n Detail View (Klas Base View)
& Nbsp; & nbsp; & nbsp; # Myapp / views.py
& Nbsp; & nbsp; & nbsp; van __future__ invoer absolute_import
& Nbsp; & nbsp; & nbsp; van spaceview.views invoer SpaceView
& Nbsp; & nbsp; & nbsp; van .models invoer Myapp
& Nbsp; & nbsp; & nbsp; klas ProjectSpace (SpaceView):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; naamruimte = 'myapp'
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; model = Myapp
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; context_object_name = "myapp"
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; slug_url_kwarg = 'myapp_slug'
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; template_name = 'myapp / myapp_base.html'
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; def get_context_data (self, ** kwargs):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; konteks = super (ProjectSpace, self) .get_context_data (** kwargs)
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; konteks ['cat'] = self.object.foo ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; terugkeer konteks
Gebruik
Lees naamruimte url in Django Docs;)
& Nbsp; & nbsp; & nbsp; # Myapp / urls.py
& Nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; urlpatterns = patrone ('',
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; url (r "^ (P
& Nbsp; & nbsp; & nbsp; )
Nou kan jy toegang tot die ruimte voorwerpe in herbruikbare app uitsig
& Nbsp; & nbsp; & nbsp; # Reusableapp / view.py
& Nbsp; & nbsp; & nbsp; ...
& Nbsp; & nbsp; & nbsp; klas ReusableappView (FooView):
& Nbsp; & nbsp; & nbsp; model = ReusableApp
& Nbsp; & nbsp; & nbsp; context_object_name = "reusableapp"
& Nbsp; & nbsp; & nbsp; template_name = "reusableapp / reusableapp_foo.html"
& Nbsp; & nbsp; & nbsp; method_decorator (login_required)
& Nbsp; & nbsp; & nbsp; def versending (self, versoek, * argumente, ** kwargs):
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ruimte = request.space.object
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Indien nie space.foo_permission ():
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; HttpResponseForbidden ()
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; terugkeer super (MemberUpdateSetView, self) .dispatch (versoek * argumente, ** kwargs)
Veranderlikes
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; request.resolve, url los voorwerp
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; request.space, ruimte-oog voorwerp relatief tot laaste naamruimte los in url
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; request.spaces, dict van naamruimte 'n ruimte-oog voorwerp
Vereistes :
- Python
- Django
Kommentaar nie gevind