将多个视图、模板和/或ajax加载的url组合到一个视图中。
django-mashup的Python项目详细描述
django mashup是django框架的视图mashup。组合多个视图、模板,和/或ajax将url加载到一个基于类的视图中。
分发版或虚拟版:
$pip install git+https://github.com/sigmaeducation/django mashup.git
将应用程序添加到"已安装的应用程序"中:
````
已安装的应用程序=(…
"mashup",
…
)
````
====
viewmash
示例:
```
from django.core.urlsolvers import reverse
from mashup.views import mashup,urlmash,templatemash
mymashup类(mashup):
视图=[templatemash("my_app/my_login_instructions.html"),
urlmash(reverse('account:log in'),
]
从django.views.generic.edit import formview
从mashup.views导入mashup,templatemash,viewmash
class myformview(formview):
…
class mymashup(mashup):
视图=[templatemash("my_app/my_login_instructions.html"),
viewmash(myformview),
]
```
>每个组件类都有一个可选的容器关键字参数。这应该是一个模板名。使用{mashup safe}指定内容的放置位置:
`````
from django.core.urlsolvers import reverse
from mashup.views import mashup,urlmash,templatemash
类my mashup(mashup):
视图=[templatemash("my_app/my_login_instructions.html",
container="my_app/my_template.html"),
urlmash(reverse('account:login'),
…
#my_app/my_template.html
<;div class=explanation>;{{mashup safe}<;div>;
````
这三个组件类可以使用默认容器进行子类划分。下面的mymashup类将产生与上面的响应相同的响应:
````
来自django.core.urlsolvers从mashup导入reverse
。views导入mashup,urlmash,templatemash
class mytemplatemash(templatemash):
container="我的应用程序/我的模板.html"
class my mashup(mashup):
views=[mytemplatemash("我的应用程序/我的登录说明.html"),
urlmash(reverse('account:login'),
]
```
mashup类也可以被赋予默认容器。下面是mashup的一个抽象子类,它接受两个视图,并将它们包装在divs左窗格和右窗格中。从这个mashup继承的任何mashup都将在这些div中包含它们的视图:
````
from mashup.views import mashup
class mypanemashup(mashup):
containers=("我的应用程序/我的右窗格.html",
"我的应用程序/我的左窗格.html",
)
……
{{mashup safe}<;div>;
````
>最后,您可以定义mashup视图d按请求方法列出的容器:在"视图"或"容器"前面加上请求方法的小写名称。
在这种情况下,您不希望mashup将html容器和内容附加到post响应:
````
从mashup.views导入mashup,templatemash
从myapp.views导入myajaxformview
类myformmashup(mashup):
获取视图=(myajaxformview,
TemplateMash("我的应用程序/我的登录说明.html",container="我的应用程序/我的模板.html"),
)
获取容器=("我的应用程序/我的右窗格.html",
"我的应用程序/我的右窗格.html",)
发布视图=(myajaxformview,)
post_containers=()3.4
notes
=
如果使用自定义jquery或javascript函数通过ajax加载页面内容,可以通过提供自己的/templates/mashup/js_jquery_ajax_loader.html来指定该函数。
请求或问题。github是此项目的规范位置。
分发版或虚拟版:
$pip install git+https://github.com/sigmaeducation/django mashup.git
将应用程序添加到"已安装的应用程序"中:
````
已安装的应用程序=(…
"mashup",
…
)
````
====
viewmash
示例:
```
from django.core.urlsolvers import reverse
from mashup.views import mashup,urlmash,templatemash
mymashup类(mashup):
视图=[templatemash("my_app/my_login_instructions.html"),
urlmash(reverse('account:log in'),
]
从django.views.generic.edit import formview
从mashup.views导入mashup,templatemash,viewmash
class myformview(formview):
…
class mymashup(mashup):
视图=[templatemash("my_app/my_login_instructions.html"),
viewmash(myformview),
]
```
>每个组件类都有一个可选的容器关键字参数。这应该是一个模板名。使用{mashup safe}指定内容的放置位置:
`````
from django.core.urlsolvers import reverse
from mashup.views import mashup,urlmash,templatemash
类my mashup(mashup):
视图=[templatemash("my_app/my_login_instructions.html",
container="my_app/my_template.html"),
urlmash(reverse('account:login'),
…
#my_app/my_template.html
<;div class=explanation>;{{mashup safe}<;div>;
````
这三个组件类可以使用默认容器进行子类划分。下面的mymashup类将产生与上面的响应相同的响应:
````
来自django.core.urlsolvers从mashup导入reverse
。views导入mashup,urlmash,templatemash
class mytemplatemash(templatemash):
container="我的应用程序/我的模板.html"
class my mashup(mashup):
views=[mytemplatemash("我的应用程序/我的登录说明.html"),
urlmash(reverse('account:login'),
]
```
mashup类也可以被赋予默认容器。下面是mashup的一个抽象子类,它接受两个视图,并将它们包装在divs左窗格和右窗格中。从这个mashup继承的任何mashup都将在这些div中包含它们的视图:
````
from mashup.views import mashup
class mypanemashup(mashup):
containers=("我的应用程序/我的右窗格.html",
"我的应用程序/我的左窗格.html",
)
……
{{mashup safe}<;div>;
````
>最后,您可以定义mashup视图d按请求方法列出的容器:在"视图"或"容器"前面加上请求方法的小写名称。
在这种情况下,您不希望mashup将html容器和内容附加到post响应:
````
从mashup.views导入mashup,templatemash
从myapp.views导入myajaxformview
类myformmashup(mashup):
获取视图=(myajaxformview,
TemplateMash("我的应用程序/我的登录说明.html",container="我的应用程序/我的模板.html"),
)
获取容器=("我的应用程序/我的右窗格.html",
"我的应用程序/我的右窗格.html",)
发布视图=(myajaxformview,)
post_containers=()3.4
notes
=
如果使用自定义jquery或javascript函数通过ajax加载页面内容,可以通过提供自己的/templates/mashup/js_jquery_ajax_loader.html来指定该函数。
请求或问题。github是此项目的规范位置。