如何在js中运行django脚本。 我需要在onclick方法上使用IMDb API来获取正在搜索的电影用户的ID。
我该怎么办?
我在django仍是乞gg,所以不要评判我:)
这是该部分的html:
<div class="form-inline mt-2 mt-md-0">
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search" id="search_movie_textField">
<button class="btn btn-outline-success my-2 my-sm-0" onclick="search_movie()" >Search</button>
</div>
这是我要写的我的JS:
function search_movie(){
var sreach = document.getElementById("search_movie_textField").value;
id = //GET IMDB ID FROM SEARCH
window.location.href = '/movielist/movies/' + id; }
答案 0 :(得分:0)
尝试一下:
function search_movie() {
var search = document.getElementById("search_movie_textField").value;
window.location.href = '/movielist/movies/' + search;
}
答案 1 :(得分:0)
您应该为此使用ajax。如果您的目录结构是这样的,则可以执行以下操作。
your_django_app/
__init__.py
models.py
urls.py
views.py
templates/
your_django_app/
search.html
....
在您的urls.py
中添加一个用于搜索功能的网址
from django.urls import path
from . import views
app_name = "your_app_name"
urlpatterns = [
.....
path('search', views.search, name='search'),
.....
]
然后在views.py
中编写将搜索电影ID的函数。
from django.http import JsonResponse
def search(request):
search_keyword = request.POST["search"]
......
id = get_movie_id(search) # Your function to obtain the movie ID
......
return JsonResponse({"id": id})
最后search.html
应该是这样的:
<div class="form-inline mt-2 mt-md-0">
<form id="search-form">
{% csrf_token %}
<input class="form-control mr-sm-2" type="text" placeholder="Search" aria-label="Search" id="search_movie_textField" name="search">
<button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
</form>
</div>
<script>
$("#search-form").on("submit",function(e){
e.preventDefault();
$.ajax({
url : '{% url "your_django_app:search" %}',
type: "POST",
data: $(this).serialize(),
success: function (data) {
window.location.href = '/movielist/movies/' + data.id;
},
error: function (jXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
});
</script>
注意:不要忘记添加jQuery