【问题标题】:View does not seem to be saving all the information in my modelView 似乎没有将所有信息保存在我的模型中
【发布时间】:2019-03-29 14:35:33
【问题描述】:

我有一个保存书籍的模型和视图。但是,当我访问这些信息时,它似乎并不完整。所有查询似乎都运行正常。我不知道可能出了什么问题

我的模特

class Book(models.Model):
      title = models.CharField(max_length=50)
      user = models.ForeignKey(CustomUser, on_delete=models.CASCADE,)
      cover_pic = models.FileField(null=True, blank=True)
      author = models.CharField(max_length=100, blank=True)
      description = models.TextField(max_length=1000)
      uploaded_on = models.DateTimeField(auto_now_add=True)

      def __str__(self):
        return self.title

      def get_absolute_url(self):
        return reverse("books:addBook")

      class Meta:
        ordering = ["-uploaded_on"]

我的views.py

class addBook(FormUserNeededMixin, CreateView):
    form_class = BookForm
    success_url = reverse_lazy('addbook')
    template_name = 'books/addbook.html'

forms.py

class BookForm(forms.ModelForm):
    class Meta:
        model = Book
        exclude = ['user', 'uploaded_on']

我正在尝试使用此视图访问详细信息

class BookListView(ListView):
    model = Book
    template_name = 'books/viewbooks.html'

还有这个模板

{% for books in object_list %}
  <img src="{{ book.cover_pic }}">
  <h5>{{ book.title }}</h5>
  <p>{{ book.author }}</p>
{% endfor %}

每次我添加一个项目时,我都可以在查看书籍中看到另一个列表项目,但没有我要求的详细信息。

【问题讨论】:

    标签: django django-models python-3.6


    【解决方案1】:

    您的循环变量是books 而不是book。重命名其中一个,例如 for 标签中的那个:

    {% for book in object_list %}
      <img src="{{ book.cover_pic }}">
      <h5>{{ book.title }}</h5>
      <p>{{ book.author }}</p>
    {% endfor %}
    

    【讨论】:

    • 现在出现了标题和作者,但没有出现图片。谢谢。
    • 很高兴为您提供帮助!现在你需要弄清楚如何从 FileField 中显示图片,祝你好运。
    • 尽管确认文件已上传到正确的文件夹,但图像对我不起作用。我得到 404
    猜你喜欢
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多