Как передать динамический URL выбранного значения из dropdwonlist в Django - PullRequest
0 голосов
/ 30 мая 2019

У меня есть выпадающий список ... когда я нажимаю на это, я получаю значение, похожее на какое-то имя ... теперь я хочу, чтобы это имя передавалось как URL в django

Views.py

@csrf_exempt
def forecasting(request):
    Category = category.objects.all()

    return render(request, "myapp/casting.html",{'Category':Category})

@csrf_exempt
def Prediction(request,name):
    Category1 = category.objects.get(Category=name)

    print(Category1.Category)
    return render(request, "myapp/casting.html", {'Category1': Category1})

Models.py

class category(models.Model):
    Category = models.CharField(max_length=50)

    def __str__(self):
        return self.Category

HTML-файл

<form  id="myform" method="post" name="myform" action="/Prediction/{{Category1.Category}}">

                    <div class="col-lg-3 col-md-3">
                        <h3> Select Category</h3>
                    </div>
                    <div class="col-lg-3 col-md-3">
                        {%csrf_token%}
                        <select id="Category" name="catagery_id" onchange="myform.submit()">
                            <option value="">Select</option>
                            {% for Category in Category %}
                            <option value="{{ Category.Category }}">{{ Category.Category }}</option>

                            {% for message in messages %}
                            <div>
                                <p>{{message|safe}}</p>

                            </div>
                            {% endfor %}

                            {% endfor %}
                        </select>
                    </div>
                    <ul class="messages">
                        {% for message in messages %}
                        <p
                                {% if message.tags %} class="{{ message.tags }}" {% endif %}>{{ message }}</p>
                        {% endfor %}
                    </ul>
                    <div class="col-lg-3 col-md-3">

                    </div>


                </form>

Я понятия не имею, как это сделать .. потому что значение приходит, когда я отправляю форму .. Я новичок в этом, пожалуйста, помогите мне

1 Ответ

0 голосов
/ 30 мая 2019

Я думаю, что вы хотите передать то значение, которое выбрано в выпадающем списке в действии формы, вы можете попробовать это с помощью jquery

$("#Category").on("change",function(){
  action_url = '/Prediction/'+$(this).val()
  $('#myform').attr('action', action_url); 
  $('#myform').submit()
})

в этом случае вы должны отправить форму из jquery, удалив onchange="myform.submit()"

Заменить следующие коды

{% for Category in Category %}
 {% if Category.Category == Category1.Category %}
   <option value="{{ Category.Category }}" selected>{{ 
    Category.Category } 
   </option>
 {% else%}
   <option value="{{ Category.Category }}">{{ Category.Category } 
   </option>
 {% endif %} 

 {% for message in messages %}
 <div>
 <p>{{message|safe}}</p>

  </div>
  {% endfor %}

 {% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...