python - 类型对象 'Book' 没有属性 'order_by'

标签 python django django-models django-templates django-views

我有一个书的模型:

class Book(models.Model):
    publish_house = models.ForeignKey(PublishHouse, on_delete=models.DO_NOTHING)
    author = models.ForeignKey(Author, on_delete=models.DO_NOTHING)
    title = models.CharField(max_length=50)
    price = models.DecimalField(max_digits=5, decimal_places=2)

    objects = models.Manager()

    img = models.ImageField(upload_to='books/', default='books/no.png')
    img_inside = models.ImageField(upload_to='books/', 
                              default='books/no_inside.png')
    is_available = models.BooleanField(default=True)
    book_date = models.DateTimeField(default=datetime.now, blank=True)
    is_best_selling = models.BooleanField()

    def __str__(self):
        return self.title

    class Meta:
        db_table = 'Book'

我想按日期显示模板中的书籍(显示最近添加的书籍),这是 View :

def index(request):
    new_books = Book.order_by('-book_date')[:4]
    bestselling_books = Book.objects.filter('is_best_selling')[:4]
    book_context = {
        'new_books': new_books,
        'bestselling_books': bestselling_books,
    }
    advertises = Advertise.objects.all()
    adv_context = {
        'advertises': advertises
    }
    return render(request, 'pages/index.html', adv_context, book_context)

我想按添加日期的顺序显示书籍

它一直报错:

type object 'Book' has no attribute 'order_by'

最佳答案

图书没有属性 order_by,它的经理有

所以你需要

Book.objects.order_by

关于python - 类型对象 'Book' 没有属性 'order_by',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55007405/

相关文章:

python - Pandas 中数据框行中的数据框列

python - Django 数据存储 - SQL 或其他?

python - 如何隐藏域名?

css - django css 背景图像 url 不起作用

python - 无法分配: must be a instance Django foreign Key error

python - 如何从序列化器中的另一个模型访问外键字段

python - 将星号作为命令行参数中字符串的一部分传递到 python 程序中?

Python单元测试多个输入

django - 在 Django Admin 中将 csv 数据导入数据库

Python nltk.download() 'TCLError' 无法下载语料库 Fedora 16