python—day55 Django第三天之 删除与编辑按钮功能、书籍管理功能;

1. 出版社的删除

怎么知道用户点击删除的时候删除的是哪一条记录
- id用来在数据库中唯一确定一条记录
127.0.0.1:8000/delete_publisher/?id=2

1.首先通过delete的a标签的href="/delete_publisher/?id={{ publisher.id }}"get请求里面获取到出版社的id,

然后通过调用models.objects.get(id =id)  通过object.delete()  来删除这个出版社;

def delete_publisher(request):
    publisher_id = request.GET.get('id')
    print(publisher_id)
    obj = models.Publisher.objects.get(id=publisher_id)
    obj.delete()
    return redirect('/publisher/')


2. 出版社的编辑
设计 URL
127.0.0.1:8000/edit_publisher/?id=2

首先获取到publisher_id ,通过id获取到publisher对象,然后拿到publisher_name,然后携带数据跳转到edit.html,

把publisher_name放到input框的value里面,点击提交通过obj.name = publisher_name,然后obj.save(),通过重定向跳转到publiser_list.html;

def edit_publisher(request):

    if request.method == 'POST':
        # 获取到publisher_id
        publisher_id = request.POST.get('publisher_id')

        # 获取到publisher_name
        publisher_name = request.POST.get('publisher_name')

        # 获取到publisher对象
        publisher_obj = models.Publisher.objects.get(id=publisher_id)

        # 修改publisher的出版社名称
        publisher_obj.name = publisher_name

        # 保存更新数据库
        publisher_obj.save()
        return redirect('/publisher/')

    # 获取编辑的出版社ID
    publisher_id = request.GET.get('id')
    # print(publisher_id)

    # 获取编辑的出版社的所有信息
    publisher_obj = models.Publisher.objects.get(id=publisher_id)
    # print(publisher_obj)

    return render(request, 'edit_publisher.html', {'publisher_obj': publisher_obj})


3. 书籍的增删改查

先创建models里面的Book
ORM中的外键关联
publisher = models.ForeignKey(to=Publisher) # 外键关联Publisher这张表

book_obj.publisher --> 和我这本书关联的出版社对象
book_obj.publisher_id --> 和我这本书关联的出版社的id值,也就是数据库中真正存的字段值

查:

def book_list(request):
    res = models.Book.objects.all()
    return render(request, 'book_list.html', {'book_list':res})

增:

def add_book(request):
    if request.method == 'POST':
        book_name = request.POST.get('book_name')
        publisher_id = request.POST.get('publisher_id')
        models.Book.objects.create(name=book_name,publisher_id=publisher_id)

        return redirect('/book_list/')

    res = models.Publisher.objects.all()
    return render(request, 'add_book.html', {'publisher_list': res})

猜你喜欢

转载自www.cnblogs.com/kermitjam/p/9179906.html
今日推荐