Почему атрибут атрибута необходим для обновления вида, а не для создания вида? - PullRequest
0 голосов
/ 30 апреля 2020

здесь в приведенном ниже коде в CreateView нет упоминания о модели, но, поскольку мы упомянули form_class, он автоматически использует класс модели, упомянутый в form_class, который является Book.but, почему он не делает то же самое с представлением Update. в UpdateView, если я удаляю атрибут модели, выдает ошибку:

UpdateBook is missing a QuerySet. Define UpdateBook.model, UpdateBook.queryset, or override UpdateBook.get_queryset().

требуемый код:

models.py:

class Book(models.Model):
    name = models.CharField(max_length=50)
    picture = models.ImageField()
    author = models.CharField(max_length=30, default="Anonymous")
    email = models.EmailField(blank=True)
    describe = models.TextField(default="Good Book")

    def __str__(self):
        return self.name

views.py:

class Upload(CreateView):
    form_class = BookCreate
    template_name = "libraryapp/upload_form.html"
    success_url = reverse_lazy('libraryapp:index')


class UpdateBook(UpdateView):
    model=Book
    form_class = BookCreate
    template_name = "libraryapp/upload_form.html"
    success_url = reverse_lazy('libraryapp:index')

...