Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在我的Django项目中,我试图通过点击html按钮在中执行python方法_Javascript_Python_Html_Django - Fatal编程技术网

Javascript 在我的Django项目中,我试图通过点击html按钮在中执行python方法

Javascript 在我的Django项目中,我试图通过点击html按钮在中执行python方法,javascript,python,html,django,Javascript,Python,Html,Django,当我点击studentUpdate.html文件的编辑按钮时,出现以下错误:- NoReverseMatch at/studentUpdate/ 对于未找到任何参数的“update_student”,则相反。尝试了1个模式:[“更新学生/(\d+/$”] 有人帮帮我 <!-- studentUpdate.html --> {% extends 'app.html' %} {% block body %} <div> <div clas

当我点击studentUpdate.html文件的编辑按钮时,出现以下错误:-

NoReverseMatch at/studentUpdate/ 对于未找到任何参数的“update_student”,则相反。尝试了1个模式:[“更新学生/(\d+/$”]

有人帮帮我

<!-- studentUpdate.html -->

{% extends 'app.html' %}

{% block body %}
    <div>


        <div class="alert alert-info">All Students</div>





        <button id="show_book" type="button"  class="btn btn-success"> 
        <span class="glyphicon glyphicon-circle-arrow-left">
        </span> Back
        </button>


   <div id="edit_form"></div>

        <div id="book_form" > 
            <div class="col-lg-3"></div>
            <div class="col-lg-6">
                <form id="form" method="POST" action="{% url 'students' %}">

                    {% csrf_token %}

                        <div class="form-group">
                        <label >Student ID:</label>
                        <input type="text" name="sid" required="required" class="form-control"/> 
                    </div>
                    <div class="form-group">
                        <label>First name:</label>
                        <input type="text" name="firstname" class="form-control"/>
                    </div>
                    <div class="form-group"> 
                        <label>Last name:</label>
                        <input type="text" name="lastname" class="form-control"/>
                    </div>
                    <div class="form-group">
                        <label>Department:</label>
                        <input type="text" name="department" class="form-control" required="required"/>
                    </div>
                    <div class="form-group">
                        <label>Section:</label>
                        <input type="text" name="section" class="form-control"/>
                    </div>
                    <div class="form-group">
                        <label>Year:</label>
                        <input type="text" name="year" class="form-control"/>
                    </div>
                    <div class="form-group">
                        <button name="save_book" id="save_book" type="submit" class="btn btn-primary" href="{% url 'update_student' %}"><span
                                class="glyphicon glyphicon-save"></span>
                            Update

                        </button>
                    </div>
                </form>
            </div>
            </div>
        </div>



{% endblock %}


{% block scripts %}
    <script>
        $(document).ready(function () 
        {
            $('#table').DataTable();
        });
        $(document).ready(function () {
            $('#add_book').click(function () {
                $(this).hide();
                $('#show_book').show();
                $('#book_table').slideUp();
                $('#book_form').slideDown();
                $('#show_book').click(function () {
                    $(this).hide();
                    $('#add_book').show();
                    $('#book_table').slideDown();
                    $('#book_form').slideUp();
                });
            });
        });

        $('.editButton').on('click', function () {
            var id = $(this).attr('data-id');

            $.ajax({
                url: 'http://localhost:8000/edit_book/' + id,
                method: 'GET'
            }).success(function (response) {
                {#                alert(response.title);#}
                $('#form')
                    .find('[name="title"]').val(response.title).end()
                    .find('[name="description"]').val(response.description).end()
                    .find('[name="author"]').val(response.author).end()
                    .find('[name="quantity"]').val(response.quantity).end();
                document.getElementById('save_book').innerText = 'Update';
                $(this).hide();
                $('#show_book').show();
                $('#book_table').slideUp();
                $('#book_form').slideDown();
                $('#add_book').hide();
                $('#show_book').click(function () {
                    $(this).hide();
                    document.getElementById('form').reset();
                    $('#add_book').show();
                    $('#book_table').slideDown();
                    $('#book_form').slideUp();
                });
            });
        });
    </script>
{% endblock %}
这是我的views.py文件

from django.conf.urls import url, include
from . import views
from django.urls import path, re_path

urlpatterns = [
    url(r'^index$', views.index),
    url(r'^books$', views.books, name="books"),
    url(r'^categories$', views.categories, name="categories"),
    url(r'^students$', views.students, name="students"),
    url(r'^returning$', views.returning, name="returning"),
    url(r'^borrow$', views.borrow, name="borrow"),
    url(r'^edit_book/(\d+)/$', views.edit_book, name="edit_book"),
    url(r'^edit_category/(\d+)/$', views.edit_category, name="edit_category"),
    url(r'^delete_book/(\d+)/$', views.delete_book, name="delete_book"),
    url(r'^delete_category/(\d+)/$', views.delete_category, name="delete_category"),
    url(r'^delete_student/(\d+)/$', views.delete_student, name="delete_student"),
    #url(r'^studentUpdate/(\d+)/$', views.studentUpdate, name="studentUpdate"),
    path('studentUpdate/', views.studentUpdate), 
    url(r'^update_student/(\d+)/$', views.update_student, name="update_student"),
]
from django.shortcuts import render, redirect
from django.http import JsonResponse
from django.db.models import Sum
from datetime import date
from datetime import datetime
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
# Create your views here.
from library.models import Book, Category, Student, Borrow
import playsound
from django.template import loader 




def index(request):
    return render(request, "index.html", {})


def categories(request):
    if request.method == "POST":
        title = request.POST['title']

        Category(title=title).save()
        return redirect('/categories')
    categories = Category.objects.all()
    return render(request, "category.html", {"categories": categories})


def delete_category(request, id):
    category = Category.objects.filter(id=id)
    category.delete()
    return redirect('/categories')


def edit_category(request, id):
    category = Category.objects.filter(id=id).get()
    return JsonResponse({'title': category.title})


def books(request):
    if request.method == "POST":
        title = request.POST['title']
        author = request.POST['author']
        cat = Category.objects.get(id=int(request.POST['category_id']))
        description = request.POST['description']
        available = int(request.POST['quantity'])

        book = Book(title=title, author=author, description=description, available=available)
        book.save()
        if book.categories.add(cat):
            return redirect('/books')
    books = Book.objects.all()
    categories = Category.objects.all()
    return render(request, "books.html", {"books": books, "categories": categories})


def edit_book(request, id):
    book = Book.objects.filter(id=id).get()
    return JsonResponse(
        {'title': book.title, 'author': book.author, 'description': book.description, 'available': book.available})


def delete_book(request, id):
    book = Book.objects.filter(id=id).get()
    book.delete()
    return redirect("/books")




def students(request):
    if request.method == "POST":
        sid = request.POST["sid"]
        firstname = request.POST["firstname"]
        lastname = request.POST["lastname"]
        department = request.POST["department"]
        section = request.POST["section"]
        year = request.POST["year"]

        student = Student(student_id=sid, firstname=firstname, lastname=lastname, department=department,
                          section=section, year=year)
        student.save()
        return redirect("/students")
    students = Student.objects.all()
    return render(request, "students.html", {"students": students})



def borrow(request):
    if request.method == "POST":
        student_id = request.POST['student_id']
        student = Student.objects.get(id=student_id)
        status = "Borrowed"
        books_id = request.POST.getlist('selector')
        for book_id in books_id:
            book = Book.objects.get(id=book_id)
            b = Borrow(qty=1, status=status)
            b.save()
            b.student.add(student)
            b.book.add(book)
            return redirect("/borrow")
    students = Student.objects.all()
    books = Book.objects.all()
    datas = []
    for book in books:
        left = Borrow.objects.filter(status="Borrowed", book__title=book.title).aggregate(Sum('qty'))
        if left['qty__sum'] is None:
            l = 0
        else:
            l = int(left['qty__sum'])
        datas.append(book.available - l)
    return render(request, "borrow.html", {"datas": zip(books, datas), "students": students})



def delete_student(request, id):

    student = Student.objects.filter(id=id).get()
    student.delete()
    return redirect('/students')





def returning(request):
    if request.method == "POST":
        b_id = int(request.POST["borrow_id"])
        borrow = Borrow.objects.get(id=b_id)
        borrow.date = datetime.now()
        borrow.status = "Returned"
        borrow.save()
        return redirect('/returning')
    borrows = Borrow.objects.all()
    return render(request, "return.html", {"borrows": borrows})

def studentUpdate(request):
    template = loader.get_template('studentUpdate.html')
    return HttpResponse(template.render()) 


def update_student(request,id):
    return redirect('/students')

首先,如果你想提交一个表单(已经有了一个目标url,这里是
学生
),在设置提交按钮时,你不需要指定任何
href
,你必须选中它

那么,您的错误消息是怎么说的?它表示您希望使用一个url短名称,该短名称不引用
urls.py
文件中的任何内容。所以,你必须精确地检查这个。它与表单本身没有任何关系:只需在
GET
请求上加载页面就会产生错误,因为Django无法理解您想要实现什么

我们不清楚该如何帮助你,因为你对你试图实现的目标有太多令人困惑的定义。一次只显示一个解决方案,只有一个
update\u student
视图,URL也是如此。注释所有看起来像“update_student”的内容,除了这个:
url(r'^update_student/(\d+/$),views.update_student,name=“update_student”)


最后,错误消息表明您没有向url传递任何参数,但需要参数(请参阅url定义中的
(\d+)
)。因此,再做一些研究,了解如何将参数传递给
{%url…%}
之类的东西,您很快就会发现在
GET
调用中不会产生任何错误。祝你好运!:-)

首先,如果您想提交表单(已经有了目标url,这里是
学生
),在设置提交按钮时不需要指定任何
href
,您必须进行检查

那么,您的错误消息是怎么说的?它表示您希望使用一个url短名称,该短名称不引用
urls.py
文件中的任何内容。所以,你必须精确地检查这个。它与表单本身没有任何关系:只需在
GET
请求上加载页面就会产生错误,因为Django无法理解您想要实现什么

我们不清楚该如何帮助你,因为你对你试图实现的目标有太多令人困惑的定义。一次只显示一个解决方案,只有一个
update\u student
视图,URL也是如此。注释所有看起来像“update_student”的内容,除了这个:
url(r'^update_student/(\d+/$),views.update_student,name=“update_student”)


最后,错误消息表明您没有向url传递任何参数,但需要参数(请参阅url定义中的
(\d+)
)。因此,再做一些研究,了解如何将参数传递给
{%url…%}
之类的东西,您很快就会发现在
GET
调用中不会产生任何错误。祝你好运!:-)

问题出在这一行:

<button name="save_book" id="save_book" type="submit" class="btn btn-primary" href="{% url 'update_student' %}">
<span class="glyphicon glyphicon-save"></span>
 Update
</button>

更新
因为您为update\u student函数定义url的方式必须使用整数类型的参数来调用它

例如:

<a href="{% url 'update_student' 5 %}">Click Me</a>

在上面的示例中,整数5作为参数传递

因为您没有通过update_studenturl传递任何参数,所以只有您得到问题中提到的错误


我希望它能帮助你

问题出在这一行:

<button name="save_book" id="save_book" type="submit" class="btn btn-primary" href="{% url 'update_student' %}">
<span class="glyphicon glyphicon-save"></span>
 Update
</button>

更新
因为您为update\u student函数定义url的方式必须使用整数类型的参数来调用它

例如:

<a href="{% url 'update_student' 5 %}">Click Me</a>

在上面的示例中,整数5作为参数传递

因为您没有通过update_studenturl传递任何参数,所以只有您得到问题中提到的错误


我希望它能帮助你

我对Django一无所知,但是为什么
path('studentUpdate/',views.studentUpdate)
与它周围的其他东西不同呢?这也是错误发生的地方。我对Django一无所知,但是为什么
path('studentUpdate/',views.studentUpdate)
与它周围的其他东西不同呢?这也是错误发生的地方。我可以在tag中使用href吗?您可以,但它不会执行您尝试执行的操作。所以不!我可以在tag中使用href吗?你可以,但它不会做你想做的事情。所以不!我不知道它会不会起作用。因为现在我已经通过使用Ajax调用完成了这项工作django@Abhishek好吧,那很好,兄弟,但是你犯的错误只是因为你没有通过辩论的原因。但是知道你自己解决了你的问题还是很好的。:)顺便说一句,谢谢兄弟。我从你身上学到了一些东西。我不知道它是否有效。因为现在我已经通过使用Ajax调用完成了这项工作django@Abhishek好吧,那很好,兄弟,但是你犯的错误只是因为你没有通过辩论的原因。但是知道你自己解决了你的问题还是很好的。:)顺便说一句,谢谢兄弟。我从你那里学到了一些东西。