• ModelForm


    1、实质

    model 和form组件相结合

    2、定义

    from django.forms import ModelForm
    class BookForm(ModelForm):
        class Meta:
            model = Book
            fields = '__all__'
            labels = {
                'name': "书名:",
                'price': "价格:",
                'data': "日期:",
                'publisher': "出版社",
                'authors': "作者",
            }
            widgets = {
                'data': wid.TextInput(attrs={"type": "date"})
            }

    3、添加数据

    def add_book(request):
        if request.method == "POST":
            book = BookForm(request.POST)
            if book.is_valid():
           # 将添加的数据保存到数据库中 book.save()
    return redirect("/books/")
         else:
           return HttpResponse(book.errors)
      # 获取model的表 book
    = BookForm() return render(request, "add_book.html", {'book': book})

    4、修改数据

    def edit_book(request, edit_id):
        book_obj = Book.objects.filter(nid=edit_id).first()
        if request.method == "POST":
            # 修改数据
            book = BookForm(request.POST, instance=book_obj)
            if book.is_valid():
                book.save()
                return redirect("/books/")
        # 获取表 和 改对应对应的 数据
        book = BookForm(instance=book_obj)
        return render(request, "edit_book.html", {"book": book})

    5、模板

    <form action="" method="post" novalidate>
    {% csrf_token %}
        {% for filed in book %}
        <p>
            {{ filed.label }}
            {{ filed }}
        </p>
    {% endfor %}
        <input type="submit" name="" id="" value="提交">
    </form>

     注意:form组件和Model无关

  • 相关阅读:
    机械键盘与选购技巧
    计算机科学与技术专业的知识架构
    加法器
    计算机底层逻辑电路
    小数在计算机的表示
    整数在计算机里的表示
    Core ML 机器学习
    MapFileParser.sh: Permission denied
    iOS开发创建UI的耗时操作处理
    iOS application/json上传文件等
  • 原文地址:https://www.cnblogs.com/wt7018/p/11392239.html
Copyright © 2020-2023  润新知