- 首页
- 其他开发
- 如何从一个页面获取输入并将它们发送到 Django 中的另一个页面
如何从一个页面获取输入并将它们发送到 Django 中的另一个页面
[英] how to take input from one page and send them into another page in django
本文介绍了如何从一个页面获取输入并将它们发送到 Django 中的另一个页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我对此还很陌生.我正在尝试根据用户要求在 iframe 中构建一个报告页面用户可以创建带有 src、宽度和高度的报告......我成功地完成了这个......我现在能够创建报告我想要这个创建的报告名称将显示在下拉菜单中,当用户单击报告名称时,用户可以看到报告,并且报告名称将在下拉菜单中动态添加....我正在等待回应..在这里我将分享我所做的代码......我还要说一件事,我不想在数据库中添加这些数据(Src,宽度,高度,报告名称)...是否可以创建报告并在我单击时获得相同的报告报告名称.
index.html
<a href="#";类=下拉切换";数据切换=下拉"角色=按钮"aria-haspopup="true";aria-expanded=false">Reports<span class=caret"></span></a><ul class="下拉菜单"><li class="dropdown-header">Reports</li><li><div class="buttons pull-right"><a href="{% url 'report:reporttest' %}";class =btn btn-xs btn-success"title=添加"><i class=fa fa-plus"></i></a>
<a href="{% url 'report:reporttwo' %}">报告一</a>{% for item in report_item %}<li><a href="{% url 'report:add' %}">{{item.name}}</a>{% 结束为 %}
reportform.html
<div class="panel-body"><table class="table table-hover report-body attr-table"><tr><td>网址</td><td><输入类型=文本"名称=src"></td></tr><tr><td>宽度</td><td><输入类型=数字"名称=宽度"></td></tr><tr><td>高度<td><输入类型=数字"名称=高度"></td></tr><tr><td>报告名称</td><td><输入类型=文本"名称=名称"></td></tr><输入类型=提交">
</表单>
report_one.html
**view.py **
def reportone(请求):返回渲染(请求,'report_one.html')定义报告二(请求):返回渲染(请求,'report_two.html')定义报告测试(请求):返回渲染(请求,'reportform.html')定义添加(请求):如果 request.method == POST":report_item={}src=request.POST['src']width=request.POST['width']height=request.POST['height']name=request.POST['name']report_item={'src':src,'width':width,'height':height,'name':name}返回渲染(请求,'report_one.html',report_item)别的:返回渲染(请求,'report_one.html',report_item)
urls.py
from django.contrib import admin从 django.urls 导入路径从 extras.views 导入 ObjectChangeLogView从 .导入视图app_name = '报告'网址模式 = [路径('reportone',views.reportone,name='reportone'),路径('reporttwo', views.reporttwo, name='reporttwo'),path('reporttest', views.reporttest, name='reporttest'),路径('添加',views.add,name='add'),]
解决方案
请试试这个:
models.py
from django.db 导入模型类报告(模型.模型):url = models.URLField(null=False,max_length=300)宽度 = 模型.IntegerField(默认 = 300)高度 = 模型.IntegerField(默认 = 200)名称 = 模型.CharField(max_length = 50)
forms.py
from .models 导入报告从 django.db 导入模型类 ReportForm(forms.Form):width = forms.CharField(widget=forms.NumberInput(attrs={'class':' form-control'}))height = forms.CharField(widget=forms.NumberInput(attrs={'class':' form-control'}))url = forms.URLField(max_length=300)name = forms.CharField(max_length = 50)元类:模型 = 报告fields = [ url", width", height", name"]
views.py
from .forms import ReportForm从 .models 导入报告定义报告测试(请求):表单 = ReportForm()返回渲染(请求,'reportform.html',{'form':form})定义添加(请求):report_item={}如果 request.method == POST":对象=报告()obj.url =request.POST['url']obj.width=request.POST['width']obj.height=request.POST['height']obj.name=request.POST['name']obj.save()report_item={'src':request.POST['url'],'width':request.POST['width'],'height':request.POST['height'],'name':request.POST['名称']}返回渲染(请求,'report_one.html',report_item)别的:返回渲染(请求,'report_one.html',report_item)
reportform.html
<div class="panel-body"><table class="table table-hover report-body attr-table">{% csrf_token %}{% for field in form.visible_fields %}<tr><td>{{field.label}}</td><td>{{field}}</td></tr>{% 结束为 %}<输入类型=提交">
</表单>
report_one.html
请试试这个.更改模型后,然后迁移它.用于检查的简单网址:
I'm fairly new at this. I'm trying to build a report page in iframe according to user requirement user can create report with src, width and height ...and i successfully done this...i am able to create the report now i want this created report name will be show in the dropdown menu and when the user click on report name then user can see the report and the name of the report will add on dynamically in the dropdown....
i'm waiting for response ..here i'm going to share the code what i have done ...
i would say one more thing i don't want to add these data (Src,width ,height,name of the report) in the data base ...is that possible to create report and get the same report when i will click on the report name.
index.html
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Reports<span class="caret"></span></a>
<ul class="dropdown-menu">
<li class="dropdown-header">Reports</li>
<li>
<div class="buttons pull-right">
<a href="{% url 'report:reporttest' %}" class="btn btn-xs btn-success" title="Add"><i class="fa fa-plus"></i></a>
</div>
<a href="{% url 'report:reporttwo' %}">Report one</a>
</li>
{% for item in report_item %}
<li>
<a href="{% url 'report:add' %}">{{item.name}}</a>
</li>
{% endfor %}
</ul>
</li>
reportform.html
<form action = "add" method= "post" enctype="multipart/form-data" class="form form-horizontal">
{% csrf_token %}
<div class="panel panel-default">
<div class="panel-heading">
<strong>Add Report</strong>
</div>
<div class="panel-body">
<table class="table table-hover report-body attr-table">
<tr>
<td>URL</td>
<td>
<input type="text" name="src">
</td>
</tr>
<tr>
<td>WIDTH</td>
<td>
<input type="number" name="width">
</td>
</tr>
<tr>
<td> HEIGHT</td>
<td>
<input type="number" name="height">
</td>
</tr>
<tr>
<td> NAME OF THE REPORT</td>
<td>
<input type="text" name="name">
</td>
</tr>
</table>
<input type="submit">
</div>
</div>
</form>
report_one.html
<iframe src = {{src}} width= {{width}} height= {{height}} frameborder="0" allowfullscreen allowtransparency ></iframe>
**view.py **
def reportone(request):
return render(request, 'report_one.html')
def reporttwo(request):
return render(request, 'report_two.html')
def reporttest(request):
return render(request, 'reportform.html')
def add(request):
if request.method == "POST":
report_item={}
src=request.POST['src']
width=request.POST['width']
height=request.POST['height']
name=request.POST['name']
report_item={'src':src, 'width':width, 'height':height, 'name':name}
return render(request, 'report_one.html', report_item)
else:
return render(request, 'report_one.html' , report_item)
urls.py
from django.contrib import admin
from django.urls import path
from extras.views import ObjectChangeLogView
from . import views
app_name = 'report'
urlpatterns = [
path('reportone', views.reportone, name='reportone'),
path('reporttwo', views.reporttwo, name='reporttwo'),
path('reporttest', views.reporttest, name='reporttest'),
path('add', views.add, name='add'),
]
解决方案
Please try this:
models.py
from django.db import models
class Report(models.Model):
url = models.URLField(null=False,max_length=300)
width = models.IntegerField(default=300)
height = models.IntegerField(default=200)
name = models.CharField(max_length = 50)
forms.py
from .models import Report
from django.db import models
class ReportForm(forms.Form):
width = forms.CharField(widget=forms.NumberInput(attrs={'class':' form-control'}))
height = forms.CharField(widget=forms.NumberInput(attrs={'class':' form-control'}))
url = forms.URLField(max_length=300)
name = forms.CharField(max_length = 50)
class Meta:
model = Report
fields = [ "url","width","height","name"]
views.py
from .forms import ReportForm
from .models import Report
def reporttest(request):
form = ReportForm()
return render(request, 'reportform.html',{'form':form})
def add(request):
report_item={}
if request.method == "POST":
obj= Report()
obj.url =request.POST['url']
obj.width=request.POST['width']
obj.height=request.POST['height']
obj.name=request.POST['name']
obj.save()
report_item={'src':request.POST['url'], 'width':request.POST['width'], 'height':request.POST['height'], 'name':request.POST['name']}
return render(request, 'report_one.html', report_item)
else:
return render(request, 'report_one.html' , report_item)
reportform.html
<form action = "add" method= "post" enctype="multipart/form-data" class="form form-horizontal">
<div class="panel panel-default">
<div class="panel-heading">
<strong>Add Report</strong>
</div>
<div class="panel-body">
<table class="table table-hover report-body attr-table">
{% csrf_token %}
{% for field in form.visible_fields %}
<tr>
<td>{{field.label}}</td>
<td>{{field}}</td>
</tr>
{% endfor %}
</table>
<input type="submit" >
</div>
</div>
</form>
report_one.html
<iframe width="{{width}}" height="{{height}}" src="{{src}}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
please try this.After change model then migrate it.
simple url for checking :https://www.youtube.com/embed/F5mRW0jo-U4
这篇关于如何从一个页面获取输入并将它们发送到 Django 中的另一个页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文