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
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