【问题标题】:django : How to disable dates in datepicker, based on the entries form db?django:如何根据数据库中的条目禁用日期选择器中的日期?
【发布时间】:2018-09-08 03:27:22
【问题描述】:

我在数据库中的这个下面的模型中定义了 n 个日期,这些是由管理员直接插入的,而不是由 modelforms 或任何东西。

class Calendar(models.Model):

    date = models.DateField()
    occasion = models.CharField(max_length = 20)

具有日期字段的表单,

class LeaveRequestForm(ModelForm):

    class Meta:
        fields = (... "from_date", "to_date" ...)
        model = Leave

        widgets =  {
            ...
            'from_date' : DateInput(attrs={'class': 'datepicker'}),
            'to_date' : DateInput(attrs={'class': 'datepicker'}),
            ...

        }

我有这个禁用周末的日期选择器脚本,

<script>

    $(document).ready(function() {
        $('.datepicker').datepicker(
          {
            minDate : 0,
            beforeShowDay : $.datepicker.noWeekends
          }
        );
    });

    </script>

现在我也想禁用数据库中定义的日期 + 周末。我该怎么做?

更新:

var array = {{ 
               {% for x in disabled_dates %}
               {{x.dates}}
               {% endfor  %} 
            }}

$('datepicker').datepicker({
    beforeShowDay: function(date){
        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
        return array.indexOf(string) != -1 ? [false] : $.datepicker.noWeekends(date);
    }
});

还没有运气!

【问题讨论】:

  • 这里的答案对我很有帮助stackoverflow.com/questions/14484159/…
  • @devdob 好的,但你为什么要评论?
  • 什么意思?我应该怎么做?
  • 它显示了如何禁用日期,这不是你要问的吗?!
  • @devdob Now I want to disable the dates defined in the database + weekends as well. How do I do that?

标签: javascript python jquery django


【解决方案1】:

从答案herehere 中引用,

var array = [
    {% for x in disabled_dates %}
        {{x.dates}}
    {% endfor  %} 
]

$('datepicker').datepicker({
    beforeShowDay: function(date){
        var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
        return array.indexOf(string) != -1 ? [false] : $.datepicker.noWeekends(date);
    }
});

编辑:在您的日期数组旁边添加周末。

编辑:为日期添加了 for 循环(尽管我认为您应该从视图函数中发送一个就绪列表)

希望这会有所帮助!

【讨论】:

  • 这能回答你的问题吗?
  • 是的,但还没有运气!
  • 你还面临什么问题?
  • 从数据库中检索数据的for循环
  • 现在检查答案,这应该可以解决你的问题。
猜你喜欢
  • 1970-01-01
  • 2020-03-17
  • 1970-01-01
  • 1970-01-01
  • 2014-11-25
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多