Ich benutze jQuery Monatsauswahl (ohne Datum) mit Format wie: 201110.jquery Monatsauswahl: Einstellung eines anfänglichen Min/Max-Bereichs Konflikte mit "von" <"bis" Funktion
Ich möchte ein Mindest-Datum (siehe in Code), also definieren Sie es zuerst in django forms.py das Datum-min, dann analysieren dieses Datum zu html. Es gibt zuerst einen Min/Max-Bereich. (Obwohl das jetzt nicht funktioniert).
Dann um das "bis" Datum ist immer später als "von" Datum zu realisieren, muss ich auch min/max Funktion verwenden, dann überschreibt es die vorherigen Monatsbereiche, die ich aus SQL gesetzt habe.
Die aktuelle Situation ist, ich könnte realisieren "bis" Datum> "von" Datum. Aber das Mindestdatum (von MYSQL kommend) funktioniert jetzt nicht.
Wie könnte ich diesen Konflikt lösen, bitte sagen Sie mir. Vielen Dank im Voraus
Vielen Dank für Ihre Antwort im Voraus.
<script type="text/javascript">
$(function() {
$("#from, #to").datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
dateFormat: 'yy MM',
minDate: $(this).date-min, ///it is here doesn't work, the minDate is coming from Django
onClose: function(dateText, inst) {
var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
$(this).datepicker('setDate', new Date(year, month, 1));
},
beforeShow : function(input, inst) {
if ((datestr = $(this).val()).length > 0) {
year = datestr.substring(datestr.length-4, datestr.length);
month = jQuery.inArray(datestr.substring(0, datestr.length-5), $(this).datepicker('option', 'monthNames'));
$(this).datepicker('option', 'defaultDate', new Date(year, month, 1));
$(this).datepicker('setDate', new Date(year, month, 1));
}
var other = this.id == "from" ? "#to" : "#from";
var option = this.id == "from" ? "maxDate" : "minDate";
if ((selectedDate = $(other).val()).length > 0) {
year = selectedDate.substring(selectedDate.length-4, selectedDate.length);
month = jQuery.inArray(selectedDate.substring(0, selectedDate.length-5), $(this).datepicker('option', 'monthNames'));
$(this).datepicker("option", option, new Date(year, month, 1));
}
}
});
$("#btnShow").click(function(){
if ($("#from").val().length == 0 || $("#to").val().length == 0){
alert('All fields are required');
}
else{
alert('Selected Month Range :'+ $("#from").val() + ' to ' + $("#to").val());
}
})
});
</script>
Wie ich meine min-date in django definieren:
In models.py
class XXX(models.Model):
start_date=models.DateField(auto_now_add=True)
end_date=models.DateField(auto_now_add=True)
In forms.py
class Meta:
model = XXX
fields = ('start_date','end_date')
date_min=XXX.objects.all().aggregate(Min('date')) <this field is NOT defined in models.py, is that OK?; and format is like 2011-11-01 -->
widgets = {
'start_date': forms.DateInput(attrs={'class':'datepicker',
'date-min':date_min,
}),
}
Sie können nicht Aggregat auf einem undefinierten Feld. Wie möchten Sie "date_min" definieren? – Uri