首页 > 解决方案 > 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表单无法显示数据库中的现有数据请帮助

标签: django

解决方案


在您请求 UpdateView 页面的表单中使用 GET 方法,即 (method="GET")。


推荐阅读