Web M&M
https://mam.matfyz.cz
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
829 B
30 lines
829 B
3 months ago
|
import django.views
|
||
|
|
||
|
|
||
|
def viewMethodSwitch(get, post):
|
||
|
"""
|
||
|
Vrátí view, který zavolá různé jiné views podle toho, kterou metodou je zavolán.
|
||
|
|
||
|
Inspirováno https://docs.djangoproject.com/en/3.1/topics/class-based-views/mixins/#an-alternative-better-solution, jen jsem to udělal genericky.
|
||
|
|
||
|
Parametry:
|
||
|
post view pro metodu POST
|
||
|
get view pro metodu GET
|
||
|
|
||
|
V obou případech se míní už view jakožto funkce, takže u class-based views se už má použít .as_view()
|
||
|
|
||
|
TODO: Podpora i pro metodu HEAD? A možná i pro FILES?
|
||
|
"""
|
||
|
|
||
|
theGetView = get
|
||
|
thePostView = post
|
||
|
|
||
|
class NewView(django.views.View):
|
||
|
def get(self, request, *args, **kwargs):
|
||
|
return theGetView(request, *args, **kwargs)
|
||
|
|
||
|
def post(self, request, *args, **kwargs):
|
||
|
return thePostView(request, *args, **kwargs)
|
||
|
|
||
|
return NewView.as_view()
|