django - django updateview 未显示要形成的现有数据
问题描述
更新正在运行,但模板表单未显示现有数据。django updateview 未显示要形成的现有数据。当更新页面显示仅显示现有文件但未显示对象数据时。updateview 无法将现有数据发送到表单
视图.py
from django.shortcuts import render, redirect
from django.core.files.storage import FileSystemStorage
from .forms import BookForm
from .models import Book
from django.views.generic import TemplateView, ListView, CreateView, UpdateView
from django.urls import reverse_lazy
class BookUpdate(UpdateView):
model = Book
form_class = BookForm
success_url = reverse_lazy('class_book_list')
template_name = 'updatebook.html'
模型.py
from django.db import models
from django.urls import reverse
# Create your models here.
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
pdf = models.FileField(upload_to='books/pdfs/')
cover = models.ImageField(upload_to='books/covers/', null=True, blank=True)
def __str__(self):
return self.title
表格.py
from django import forms
from .models import Book
class BookForm(forms.ModelForm):
class Meta:
model = Book
fields = ('title', 'author', 'pdf', 'cover')
网址.py
from django.contrib import admin
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
from . import views
urlpatterns = [
path('books/', views.book_list, name='book_list'),
path('books/upload/', views.upload_book, name='upload_book'),
path('books/<int:pk>/',views.delete_book, name='delete_book'),
path('class/books/',views.BookListView.as_view(), name='class_book_list'),
path('class/books/upload/',views.UploadBookView.as_view(), name='class_upload_book'),
path('class/books/update/<int:pk>/',views.BookUpdate.as_view(), name='class_update_book'),'''
更新书.html
{% load crispy_forms_tags %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h2> Upload Book to Database</h2>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{form | crispy}}
<button type="submit" >Update</button>
</form>
</body>
</html>
html表单无法显示数据库中的现有数据请帮助
解决方案
在您请求 UpdateView 页面的表单中使用 GET 方法,即 (method="GET")。
推荐阅读
- python-3.x - 在python 3中从对象类型[]转换熊猫列
- android - 在 Retrofit 2 中调用 URL 时出现 HTTP 400 错误
- android - 无法在设备上应用更改:DEVICE####。错误是:无法读取未定义的属性“env”
- ios - 如何将结构或类对象附加到 SCNNode
- ruby-on-rails - Rails 5 尝试将空字符串保存为 nil
- angular - Angular 表单一次显示一条错误消息
- knockout.js - Dynamic Add New Row Using knockout js
- node.js - 在 NestJS 中为 Pug 设置“basedir”选项
- docker - 如何在 dockerfile 中使用 .ENV 文件中的变量?
- c - printf("%d","%u","%p",ptr,ptr,ptr) 和 printf("%d %u %p",ptr,ptr,ptr) 有什么区别?