python - Django:最早()和最新()需要字段作为位置参数或模型元数据中的“get_latest_by”
问题描述
谁能解释一下这个错误是什么意思?
我在views.py中做了这个:
class FormListView(FormMixin, ListView):
def get(self, request, *args, **kwargs):
# From ProcessFormMixin
form_class = self.get_form_class()
self.form = self.get_form(form_class)
# From BaseListView
self.object_list = self.get_queryset()
allow_empty = self.get_allow_empty()
if not allow_empty and len(self.object_list) == 0:
raise Http404(_(u"Empty list and '%(class_name)s.allow_empty' is False.")
% {'class_name': self.__class__.__name__})
context = self.get_context_data(object_list=self.object_list, form=self.form)
return self.render_to_response(context)
def post(self, request, *args, **kwargs):
return self.get(request, *args, **kwargs)
class CompanyListView(LoginRequiredMixin,FormListView):
model = Company
form_class = daterangeform
paginate_by = 10
def get_queryset(self):
return company.objects.filter(User=self.request.user)
def get_context_data(self, **kwargs):
context = super(companyListView, self).get_context_data(**kwargs)
context['selectdate_list'] = selectdate.objects.filter(User=self.request.user).latest()
return context
我收到了这个错误:
ValueError: earliest() and latest() require either fields as positional arguments or 'get_latest_by' in the model's Meta.
谁能解释一下我的代码有什么问题以及以正确方式执行此操作的可能解决方案...
谢谢
解决方案
如latest(*fields)
[Django-doc]文档中所述:
根据给定字段返回表中的最新对象。
此示例
Entry
根据pub_date
字段返回表中最新的:Entry.objects.latest('pub_date')
因此,如果您想获取有关某个字段的最新对象(例如updated_date
),您可以将其写为:
selectdate.objects.filter(
User=self.request.user
).latest('updated_date')
但是,您可以使用latest()
不带Meta
参数的参数,前提是您在模型类中为此指定了顺序,例如:
class Foo(models.Model):
name = models.CharField(max_length=20)
class Meta:
get_latest_by = ['name']
在这种情况下
Foo.objects.latest()
将给出具有最大值Foo
的对象(如果我们在这里按字典顺序比较名称)。 name
推荐阅读
- c++ - 在 Windows 上使用 ANGLE 和 GLFW 设置 C++ 项目
- php - Gmail 删除了 img 标签的 src 属性
- java - Spring boot - 从 jar 中访问 firebase admin sdk 凭据 json 文件
- android - 如何在 Visual Studio 中为 Xamarin 项目创建单元测试?
- mysql - 使用 varchar 在 MYSQL 中创建函数,如果:为什么不编译?
- python - 从熊猫值计数创建新的数据框
- r - 如何删除由 scale_color_manual 引起的图例内的灰色方块?
- flutter - 在 null 上调用了方法“[]”。均匀的价值应该在那里
- typescript - 是否支持建议在 VS Code 中自动定义不存在的 TypeScript 类,例如在使用 TDD 时?
- mysql - 在 hadoop 上使用 sqoop 导入命令时出现错误