【问题标题】:How To Create Business Hours Via Django如何通过 Django 创建营业时间
【发布时间】:2018-04-04 01:45:26
【问题描述】:

我正在创建一个程序,允许用户注册他们的餐厅以进行送货计划,但是,我正在尝试实现允许用户在注册时输入他们的营业时间的方法。到目前为止,我得到了这个:

模型.py

WEEKDAYS = [
    (1, _("Monday")),
    (2, _("Tuesday")),
    (3, _("Wednesday")),
    (4, _("Thursday")),
    (5, _("Friday")),
    (6, _("Saturday")),
    (7, _("Sunday")),
    ]

    weekday = models.IntegerField(
        choices=WEEKDAYS,
        unique=True
    )
    from_hour = models.TimeField()
    to_hour = models.TimeField()

Forms.py

class RestaurantForm(forms.ModelForm):

    class Meta:
        model = Restaurant

        fields = ("restaurant_name", "phone", "logo", "tagline", "street_address",
         "state", "city", "zip_Code","weekday", "from_hour", "to_hour")

但是,当我运行它时,选项以一种无法使用的格式显示,不允许用户输入超过日期和时间:

我不确定我应该怎么做才能设置此表单并允许餐厅添加营业或关闭的所有日期和时间。

【问题讨论】:

  • 为什么在工作日字段声明中使用unique=True。?
  • 老实说,我为其他人看到了这项工作。我刚刚在我的代码中尝试过。
  • 你的 db_ 中有数据吗?
  • 我的数据库中目前有对象。只是一些测试对象,但它们没有字段。
  • 我的意思是数据。数据库中有记录吗?

标签: django python-3.x django-models django-forms


【解决方案1】:

你需要创建一个新模型OpenningTime

使用week_day、from_hour。 to_hour

然后在餐厅有一个ManyToManyField 到OpenningTime。

现在您可以为您的餐厅添加多天时间

  WEEKDAYS = [
    (1, _("Monday")),
    (2, _("Tuesday")),
    (3, _("Wednesday")),
    (4, _("Thursday")),
    (5, _("Friday")),
    (6, _("Saturday")),
    (7, _("Sunday")),
 ]
class OpenningTime(models.Model):

    weekday = models.IntegerField(
        choices=WEEKDAYS,
        unique=True)
    from_hour = models.TimeField()
    to_hour = models.TimeField()

class Restaurant(models.Model):
    openning_times = models.ManyToManyField(OpenningTime)

【讨论】:

  • 你有这方面的例子吗?
  • @ATrueNovice 我更新了模型的答案,你想要一个表格的例子吗?
  • 这在表单中怎么称呼?
猜你喜欢
  • 2015-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-21
  • 2013-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多