I have this form and custom widget

class BidDateWidget(widgets.DateInput):
    """
    Renders a Twitter Bootstrap Date Input.
    """
    class Media:
        css = ("{{ STATIC_URL }}stylesheet/datetimepicker.css")
        js = ("{{ STATIC_URL }}js/bootstrap-datetimepicker.js")

    def render(self, name, value, attrs=None):
        if value is None: value = ''
        final_attrs = self.build_attrs(attrs, type="text", name=name)
        if final_attrs.get('class'):
            final_attrs['class'] = final_attrs['class'] + ' input-small'
        if final_attrs.get('disabled'):
            datepicker_css_class = 'input-append'
        else:
            datepicker_css_class = 'input-append date'
        # only add value attribute if value is non-empty
        final_attrs['value'] = value

        html = '''
            <div class="span3">
            <h5>Bid Ending Date</h5>
            <div class="{1}" id="datetime1" data-date-format="mm-dd-yyyy">
                <input{0} />
                <span class="add-on">
                    <i class="icon-th"></i>
                </span>
            </div>
            </div>
            '''
        return mark_safe(html.format(flatatt(final_attrs),
datepicker_css_class))

class BidTimeWidget(widgets.TimeInput):
    """
    Renders a Twitter Bootstrap Date Input.
    """
    class Media:
        css = ("{{ STATIC_URL }}stylesheet/bootstrap-timepicker.min.css")
        js = ("{{ STATIC_URL }}js/bootstrap-timepicker.min.js")

    def render(self, name, value, attrs=None):
        final_attrs = self.build_attrs(attrs, type="text", name=name)
        final_attrs['class'] = "input-small time"
        final_attrs['id'] = "datetime2"
        final_attrs['type'] = "text"
        if value is None:
            final_attrs['value'] = ''
        else:
            final_attrs['value'] =  datetime.datetime.strptime(value,
"%H:%M %p").time()

        timepicker_css_class = 'input-append'

        html = '''
            <div class="span4 pull-right">
            <h5>Bid Ending Time</h5>
            <div class="{1} bootstrap-timepicker">
                <input {0}/>
                <span class="add-on">
                <i class="icon-time"></i>
                </span>
            </div>
            </div>
            '''
        return mark_safe(html.format(flatatt(final_attrs),
timepicker_css_class))


class BidSplitDateTime(forms.SplitDateTimeWidget):
    """
    A SplitDateTime Widget that has some admin-specific styling.
    """
    def __init__(self, attrs=None):
        widgets = [BidDateWidget,BidTimeWidget]
        # Note that we're calling MultiWidget, not SplitDateTimeWidget,
because
        # we want to define widgets.
        forms.MultiWidget.__init__(self, widgets, attrs)

    def format_output(self, rendered_widgets):
        return mark_safe(u'%s %s' % \
            (rendered_widgets[0], rendered_widgets[1]))


class BidCreateForm(forms.ModelForm):
    required_css_class = 'required'
    def __init__(self, *args, **kwargs):
        user = kwargs.pop('vehicles_available')
        super(BidCreateForm, self).__init__(*args, **kwargs)
        self.fields['vehicles_available'].queryset =
CarrierVehicle.objects.filter(carrier__user=user)
        self.fields['vehicles_available'].help_text = None

    class Meta:
        model = Bid
        exclude = ('created_on', 'created_by', 'created_from',
                   'last_modified_on', 'last_modified_by',
'last_modified_from',
                   'job', 'accepted', 'spam', )
        fields = ('one_liner', 'quote_price', 'message',
'vehicles_available','bid_ending_in' )
        widgets = {
            'one_liner': forms.TextInput(attrs={'class': 'span8'}),
            'quote_price': forms.TextInput(attrs={'class': 'span10'}),
            'message': forms.Textarea(attrs={'class': 'span10', 'rows':
'6'}),
            'vehicles_available' : forms.CheckboxSelectMultiple(),
            'bid_ending_in' : BidSplitDateTime()
        }



Thing is whenever I am posting this form, it goes to form-invalid, and
returns this error


<ul class="errorlist"><li>bid_ending_in<ul class="errorlist"><li>Enter a
valid date/time.</li></ul></li></ul>



Any Help?

Mrinmoy Das
http://goromlagche.in/

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAFWA-MOMkHHOeaCBJJd_n_wnBp3zqCth2SRa0duUmDEmtGP_tw%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to