【问题标题】:django - queryset in modelFormdjango - modelForm 中的查询集
【发布时间】:2017-03-25 09:44:55
【问题描述】:

我需要在forms.py 中按日期时间过滤Food 模型,但我不知道该怎么做。谁能帮帮我?

models.py

class Food(models.Model):
    class Meta:
        verbose_name = "Food"
        verbose_name_plural = "Foods"

    def __unicode__(self):
        return self.food_name

    food_name = models.CharField(verbose_name="Food Name", max_length=50)
    serve_date = models.DateTimeField(verbose_name="Serve Date")

forms.py

class Reserve(forms.ModelForm):
    food_name = forms.ModelChoiceField(
        queryset=Food.objects.all(), 
        widget=forms.Select(), 
        empty_label=u"برای انتخاب غذا کلیک کنید",
        )

    class Meta:
        model = Reservation
        fields = ('food_count', 'food_name')

【问题讨论】:

  • 您尝试或研究过什么吗?
  • @Sayse 是的 ....

标签: django django-queryset modelform


【解决方案1】:

您可以通过以下方式使用 lte(小于或等于)或 gte(大于或等于)过滤您的查询集:-

queryset=Food.objects.filter(serve_date__lte='2006-01-01')

queryset=Food.objects.filter(serve_date__gte='2006-01-01')

【讨论】:

  • 是的,您可以将其作为 127.0.0.1:8000/2016-11-08 传递,然后在您看来,您可以将“-”替换为“/”,因为“/”会与网址
  • 我的问题在那里。如何将日期时间变量(年、月、日)传递给表单?
  • 我已经编辑了查询集。 queryset=Food.objects.filter(serve_date__date = serve_date)。但返回:“未定义服务日期”
  • 您可以参考docs.djangoproject.com/en/1.10/topics/db/queries找到更准确的答案
猜你喜欢
  • 2015-03-20
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
  • 2014-04-18
  • 1970-01-01
  • 1970-01-01
  • 2018-11-19
  • 1970-01-01
相关资源
最近更新 更多