how to take input from one page and send them into another page in django

后端 未结 1 1552
情话喂你
情话喂你 2021-01-21 10:39

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

相关标签:
1条回答
  • 2021-01-21 11:18

    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

    0 讨论(0)
提交回复
热议问题