【问题标题】:Django object.filter returns Object (1) on search barDjango object.filter 在搜索栏上返回 Object (1)
【发布时间】:2022-10-14 05:41:44
【问题描述】:

所以我有一个 Django 网站项目,其中包含存储在其中的所有不同书籍的数据库。使用我的搜索栏,如果我输入名称,它将显示来自数据库的结果。问题是每当我输入所说的名字(海贼王或进击的巨人),而不是显示其标题名称,它会显示书籍对象 (1)或者书籍对象 (2)取决于我输入的名称,我不知道为什么。

这是我定义我的类的地方:

class Book(models.Model):
    title = models.CharField(max_length=255)
    author = models.CharField(max_length=255)
    editor = models.CharField(max_length=255)
    year_published = models.IntegerField()
    number_in_stock = models.IntegerField()
    daily_rate = models.FloatField(null=True)
    genre = models.ForeignKey(Genre, on_delete=models.CASCADE)
    date_created = models.DateTimeField(default=timezone.now)
    manga_image = models.ImageField(null=True, blank=True, upload_to='images/')

这就是我定义我的请求的地方:

def search_manga(request):
    if request.method == "POST":
        searched = request.POST[('searched')]
        mangas = Book.objects.filter(title__contains=searched)
        return render(request, 'books/search_manga.html', {'searched': searched, 'mangas': mangas})
    else:
        return render(request,'books/search_manga.html', {})

请注意,顺便说一下,我对 Django 很陌生。

【问题讨论】:

  • 请分享您的模板'books/search_manga.html'

标签: python html django


【解决方案1】:

您的 render() 方法正在将 QuerySet of Books (mangas) 返回到模板。您需要在这套书上iterate,并在模板中呈现您关心的属性,如下所示:

{% for x in mangas %}
    name is {{ x.title }}
{% endfor %}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2020-04-12
    • 1970-01-01
    相关资源
    最近更新 更多