popup
点击,弹出新窗口,保存完事,页面不刷新数据返回。
"""s6day108 URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.11/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^index/', views.index), url(r'^pop/', views.pop), ]
from django.shortcuts import render def index(request): url='/pop/' return render(request,'index.html',{"url":url}) def pop(request): if request.method == "GET": return render(request, 'pop.html') else: user = request.POST.get('user') return render(request,'pop_response.html',{'user':user})
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1 id="i1">无所谓</h1> <a href="#" onclick="popUp('{{ url }}')">点我点我</a> <script> //给后面html调用执行 function xxxpopupCallback(text) { document.getElementById('i1').innerHTML = text; } function popUp(url) { window.open(url, '/pop/' ,"status=1, height:500, 600, toolbar=0, resizeable=0"); } </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form method="post"> {% csrf_token %} <input type="text" name="user"> <input type="submit" value="保存"> </form> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>正在关闭</h1> <script> (function () { // 可以调用popup原页面的一个函数 opener.xxxpopupCallback("{{ user }}"); window.close(); })() </script> </body> </html>
用处:
djangoAdmin 中 当我们为某一张表添加数据是发现其外键或者m2m字段需要添加数据时我们可以用popUp为其外键和m2m添加字段并且添加完成以后默认选中
具体 用法参考 GitHub上 基于django-Admin 源码开发的自定一增删改查组件