Saya melewatkan tiga parameter dari template html saya ke Django view.py. Tetapi setiap kali saya mengklik kirim, itu menunjukkan kepada saya Page not found ,. Saya masih baru dalam pemrograman dan Django. Adakah yang tahu bagaimana saya bisa memperbaiki masalah ini? Hasil yang diharapkan adalah halaman web dapat menampilkan semua input dari pengguna. Hasilnya harus ditampilkan di halaman yang sama dan bukan di halaman lain.

Template saya

<!-- The Modal -->
<div id="myModal" class="modal">
  <!-- Modal content -->
  <div class="modal-content">
    <div class="modal-header">
      <span class="close">&times;</span>
      <h2>Alert Policies</h2>
    </div>
    <div class="modal-body">

        <p style="font-size:14px">Please select an event parameter as well as the condition type and value that apply.</p>

        <!-- parameter drop down -->
        <form action="send" method="post">
            <label for="Parameter"> <b style="font-size:13px" >  Event parameter to evaluate </b></label>
            <select name="Parameter" id="Parameter" style="width:340px; font-family: 'Quicksand', sans-serif;">
                <option disabled selected value>select a parameter</option>
                <option value="Subject">Subject</option>
                <option value="Text">Text</option>

            </select>
            <br><br>

            <label for="Condition">   <b style="font-size:13px" >  Type of condition </b></label>
            <select name="Condition" id="Condition" style="width:340px; margin-left:69px; font-family: 'Quicksand', sans-serif;">
                <option disabled selected value>select a condition</option>
                <option value="Equals">Equals</option>
                <option value="Contain">Contain</option>
                <option value="NotContain">Does not contain</option>

            </select>
            <br><br>

            <label for="valuetomatch"> <b style="font-size:13px" > Value to match</b></label>
            <input type="text" id="valuetomatch" name="valuetomatch" style="width:333px; margin-left:80px; font-family: 'Quicksand', sans-serif;">
            <br>
            <br>
<button class="button"><span>OK</span></button>

  </form>

        {{key}}

    </div>

Tampilan Saya.py

from django.shortcuts import render
from django.http import HttpResponse

def index(request):

    return render(request,'DemoApp/hi.html')



def send(request):
    a=str(request.POST["Parameter"])
    b=str(request.POST["Condition"])
    c=str(request.POST["valuetomatch"])

    haha = a+b+c
    return render(request,'DemoApp/hi.html',{'key':haha})


# Create your views here.


URL saya

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index,name='home-page'),
    path('', views.send, name='test'),

]

0
albert lim 11 Mei 2021, 12:44

1 menjawab

Jawaban Terbaik

Formulir Anda memiliki <form action="send" method="post">, tetapi Anda tidak memiliki url di /send. Jadi Anda dapat mengubah file urls.py Anda seperti ini:

urlpatterns = [
    path('', views.index,name='home-page'),
    path('send/', views.send, name='test'),

]

Dan Anda harus mempertimbangkan untuk menggunakan url bernama dalam template(via tag template url< /a>), seperti ini:

<form action="{% url 'test' %}" method="post">
1
ruddra 11 Mei 2021, 10:15