根据Djang中的按钮单击将日期传递到查询集

2024-10-01 15:39:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个roastmifest视图,querys date_scheduled(我的roastmifest模型中的字段)并返回不同的值。我将查询集传递给一个模板,循环这些值,并将它们作为HTML文件上的按钮显示。我可以单击任何按钮并将相应的日期传递到URL中,((localhost/schedule/2019-06-20)当我单击2019年6月20日按钮时),从而将我重定向到我的roastmifestedetailview。现在我希望能够根据传递到URL的日期(或者单击了哪个日期按钮)来过滤我的roastmifestdetailview。在

我尝试了RoastManifest.obejects.filter(date_scheduled__date=date.today())只是想看看是否可以返回今天的任何计划,但是我总是收到Fielderrors(不支持对DateField的查找'date',或者不允许在字段上加入)。请注意,我知道这不是我想要的答案。我希望将一个变量传入queryset。在

这是模型: (注意:这里只有允许使用adminisortable2库时才有烘焙顺序)

class RoastManifest(models.Model):
    def batch_number_incrementer():
        current_max = RoastManifest.objects.order_by('-batch_number').first()
        if current_max:
            return current_max.batch_number + 1
        else:
            return 8000000
    batch_number = models.IntegerField(unique=True,
                                       default=batch_number_incrementer,
                                       )
    product = models.ForeignKey(Product, related_name="products",
                                on_delete=models.PROTECT)
    date_scheduled = models.DateField()
    roaster_profile = models.ForeignKey(RoasterProfile,
                                        on_delete=models.PROTECT)
    roast_order = models.PositiveSmallIntegerField(default=0, blank=False, null=False)

    class Meta:
        ordering = ('roast_order',)

这是我如何提取计划的各个日期:

^{pr2}$

这是我有困难的观点:

class RoastManifestDetailView(TemplateView):
    template_name = 'schedule/roastmanifest_list.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context["roasts"] = RoastManifest.objects.get(date_scheduled__date=date.today())
        return context

我希望能够单击一天(按钮)并将该日期传递到查询中,从而返回为该特定日期安排的所有内容。在

通过上面的roastmifestdetailview,我当前得到一个FieldError


Tags: numbergetdatereturnmodelsbatchcontextorder
1条回答
网友
1楼 · 发布于 2024-10-01 15:39:40

看看上面的模型,我相信正确的查询应该是:RoastManifest.obejects.filter(date_scheduled=date.today())。。。您的查询在scheduled_date字段上查找名为date的字段,但没有这样的属性。在

当您准备好根据单击的按钮进行查询时,有几种方法可以做到这一点,但最简单的(也是“正确的ish est”方法)是将日期作为查询参数传递到URL中:<button href="<URL to route>?date={item.scheduled_date}" ...>或类似的东西(您可能需要在设置中使用一些日期格式,但您希望使用类似于2019-06-21)的方法),在您的视图中,您可以使用:date = request.GET.get('date', None)来获得该参数的值,它将返回日期查询参数的字符串值,然后可以在查询和事务中使用(可能在某些转换之后),或者None,如果没有该名称的参数。在

相关问题 更多 >

    热门问题