我有一个模特。带外键的汽车,例如。所有者,可以空白,也可以不空白。汽车有一个creation_date。
我想按日期订购这些汽车,但是如果汽车有所有者,则必须以所有者的出生日期代替汽车的creation_date。
这可能吗?
看看这个类似的问题:对查询集进行排序的好方法吗?-Django
您不能使用模型的元数据,ordering
因为它仅接受一个字段
https://docs.djangoproject.com/en/dev/ref/models/options/#ordering
您无法使用查询,order_by('creation_date', 'birthdate')
因为查询仅在生日相同时才按生日排序creation_date
因此,您可以编写一个自定义管理器来为您合并一个自定义排序。
import operator
class CarManager(models.Manager):
def get_query_set(self):
auths = super(CarManager, self).get_query_set().all().order_by('-creation')
ordered = sorted(auths, key=operator.attrgetter('birthday'))
return ordered
class Car(models.Model):
sorted = CarManager()
所以现在您可以查询:
Car.sorted.all()
以获得所有已排序汽车的查询集
Django 自带的 User 及 auth 库为快速开发带来了很大便利,也增加了扩展其功能的难度。 Django 官方文档中是推荐使用一对一的关联 Model 来扩展 User model: class UserExtend(Model): user = OneToOneField(User, auto_create=True, relate_name='extend') fie
本文向大家介绍Django 自定义过滤器,包括了Django 自定义过滤器的使用技巧和注意事项,需要的朋友参考一下 示例 过滤器允许您将函数应用于变量。此函数可以使用0或1参数。语法如下: 过滤器可以链接在一起,因此非常有效: 如果将其翻译成python,上面的代码行将给出以下内容: 在此示例中,我们将编写一个verbose_name适用于模型(实例或类)或QuerySet的自定义过滤器。它将返回
问题内容: 我在Django中启用了用户身份验证模块,但是当我使用它时,它仅询问用户名和两个密码/密码确认字段。我还希望将电子邮件和全名字段全部设置为必填字段。 我已经做到了: 现在,该表单显示了新字段,但是没有将它们保存到数据库中。 我怎样才能解决这个问题? 问题答案: 用户模型中没有调用此字段。 如果要使用原始模型存储名称,则必须将其分别存储为名字和姓氏。 编辑: 如果您只希望表单中的一个字段
存储在Django模型中的元素如下 示例数据如下: . 结果:找到对象- 结果:找到对象- 结果:找到对象- 结果:未找到对象 如何使用过滤器和正则表达式进行这些查询?
本文向大家介绍Django自定义分页效果,包括了Django自定义分页效果的使用技巧和注意事项,需要的朋友参考一下 分页功能在每个网站都是必要的,对于分页来说,其实就是根据用户的输入计算出应该显示在页面上的数据在数据库表中的起始位置。 确定分页需求: 1. 每页显示的数据条数 2. 每页显示页号链接数 3. 上一页和下一页 4. 首页和末页 效果图: 首先,利用django内置的分页功能,写分页类
本文向大家介绍Django如何自定义分页,包括了Django如何自定义分页的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Django自定义分页的具体代码,供大家参考,具体内容如下 稳扎稳打版 book.html 封装保存版 封装保存版 封装版使用指南 封装版对应的HTML参考 效果图如下: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。