有没有人能解释一下这个错误是什么意思?
我在我的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.
型
任何人都可以请解释我什么是错误的,在我的代码和可能的解决方案,这样做的正确方式.
谢谢你
2条答案
按热度按时间dpiehjr41#
如**
latest(*fields)
[Django-doc]文档中所述:根据给定字段返回表中最新的对象。**
此示例根据
pub_date
字段返回表中最新的Entry
:字符串
因此,如果你想获取一个字段的最新对象(例如
updated_date
),你可以这样写:型
但是,你可以 * 使用
latest()
* 而不带 * 参数,只要你在模型的Meta
类中指定了它的顺序,比如:型
在这种情况下
型
将给予
Foo
对象 maximumname
(如果我们在这里按字典顺序比较名称)。ecfdbz9o2#
答案已经在Django文档中了
好吧,你遇到的错误,“ValueError:earliest()and latest()require either fields as positional arguments or 'get_latest_by' in the model's Meta”,是由于在行中使用了latest()方法:
字符串
要解决此问题,您需要在latest()方法中指定一个用于排序的字段,或者在模型的Meta类中定义get_latest_by属性。在SelectDate模型中(假设它是一个模型):
型
或者,在查询本身中,将字段作为参数传递给latest():
型