Why is Django widgets for TimeInput not showing -
i'm trying create timeinput
field in form , noticed the widget isn't showing correctly. when check localhost:8000/admin
, see the widget showing correctly.
my code follows. models.py
,
class timelimit(models.model): before = models.timefield(blank=true, default=time(7, 0)) # 7am after = models.timefield(blank=true, default=time(23, 0)) # 11pm
for views.py
,
class updatetimelimitview(loginrequiredmixin, formview): model = timelimit template_name = 'accounts/update_time_limit.html' form_class = updatetimelimitform def get_success_url(self): return reverse_lazy('accounts:user_profile') + '?username=' + self.request.get['username'] def get_context_data(self, **kwargs): data = super(updatetimelimitview, self).get_context_data(**kwargs) data['username'] = self.request.get['username'] return data
for forms.py
,
class updatetimelimitform(forms.form): time_error = {'required': 'this field required.', 'invalid': 'please enter valid hour:minute values.'} before = forms.timefield(widget=forms.timeinput(format='%h:%m')) after = forms.timefield(widget=timeinput(format='%h:%m')) class meta: model = timelimit
finally, relevant part fields in update_time_limit.html
,
<div class="container"> <form method="post"> {% csrf_token %} <p> {% field in form %} {{ field.errors }} <label for="{{ field.id_for_label }}">{{ field.label }}({{ field.help_text }}):</label> <br /> {{ field }}<br /><br /> , {% endfor %} </p> <input class="btn btn-primary done-btn" type="submit" value="update time limit"> </form> </div>
is there i'm missing or doing wrong? thank you.
the django admin uses admintimewidget
display time fields, not timeinput
widget using in code.
there isn't documented way reuse admintimewidget
outside of django admin. getting work hacky (see answer on this question, out of date), it's better use different widget.
Comments
Post a Comment