日期时间对象不适用于工作日()

时间:2017-07-25 12:52:08

标签: python django

class Event(models.Model):
    day = models.DateField(blank=True, null=True)
    period = models.IntegerField(choices=period_choices)
    cart = models.CharField(choices=cart_choice, max_length=4)
    is_reserved = models.BooleanField(default=False)
    teacher = models.ForeignKey(User, blank=True, null=True)

class ReservationForm(ModelForm):
    class Meta:
        model = Event
        fields = ('day', 'teacher', 'is_reserved', 'period', 'cart')
        widgets = {'teacher': forms.HiddenInput(), 'is_reserved': forms.HiddenInput(), 'period': forms.HiddenInput(),
                   'cart': forms.HiddenInput(), 'day': forms.HiddenInput()}

我想获得一周中的某一天来排序事件。我应该可以使用Django的日期过滤器 - {% field.initial.day|day:"w" %}来做到这一点 - 但这不会返回任何内容。

所以我写了一个模板标签:

@register.filter
def the_day(value):
    return value.date().weekday()

home.html
{{ form.initial.day|the_day }}

不:'str'对象没有属性'date'

好吧,让我们使用dateparse

@register.filter
def the_day(value):
    answer = parse_date(value)
    return answer.weekday()

Nope:异常类型:/的TypeError 异常值:预期的字符串或类字节对象

任何想法在哪里看?

1 个答案:

答案 0 :(得分:2)

您可以直接使用django's inbuilt date

修改

我猜你需要一周的工作日,

{{ form.initial.day|date:"w" }}

或者如果您想要工作日名称模板标签

{{ form.initial.day|date:"D" }}