int() argument must be a string or a number, not 'datetime.date'

198 views
Skip to first unread message

MikeKJ

unread,
May 23, 2014, 5:48:55 AM5/23/14
to django...@googlegroups.com

According to me in the qs line I am looking at, for example, results from Booking where 2014-07-17 equals 2014-07-17 as in date field comparison I dont even see where an int() argument comes into it

dl_reports.py

class SelectDate(forms.Form):
    def __init__(self, *args, **kwargs):
        super(SelectDate, self).__init__(*args, **kwargs)
    arrival_date = forms.DateField(required=False, input_formats=('%d/%m/%Y',), help_text='Enter a date in the format DD/MM/YYYY')
    departure_date = forms.DateField(required=False, input_formats=('%d/%m/%Y',), help_text='Enter a date in the format DD/MM/YYYY')


@staff_member_required
@never_cache
def travel_by_date_report(request, fields=None):
    form = SelectDate()
    arrival_date = ''
    departure_date = ''
    if request.GET:
        form = SelectDate(request.GET)
        if form.is_valid():
            if form.cleaned_data.has_key('arrival_date') and form.cleaned_data['arrival_date'] != '':
                qs = Booking.objects.filter(arrival_date=form.cleaned_data['arrival_date'])    //this is line 33
..etc


Booking model:

class Dates(models.Model):
    day = models.CharField(choices=DAY_CHOICES, max_length=12)
    travel_date = models.DateField()

class Booking(models.Model):
    name = models.CharField(max_length=150)
    email = models.EmailField()
    telephone_mobile = models.CharField(max_length=30, blank=True, null=True)
    arrival = models.ForeignKey(ArrivalLocations, null=True, blank=True)
    arrival_date = models.ForeignKey(Dates, related_name="Date of Arrival", blank=True, null=True)


Traceback:
Traceback:
File "/home/paston2/webapps/latitude/lib/python2.7/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/home/paston2/webapps/latitude/lib/python2.7/django/contrib/admin/views/decorators.py" in _checklogin
  19.             return view_func(request, *args, **kwargs)
File "/home/paston2/webapps/latitude/lib/python2.7/django/views/decorators/cache.py" in _wrapped_view_func
  79.         response = view_func(request, *args, **kwargs)
File "/home/paston2/webapps/latitude/latitude/dl_reports.py" in travel_by_date_report
  33.                 qs = Booking.objects.filter(arrival_date__gte=form.cleaned_data['arrival_date']).filter(arrival_date__lte=form.cleaned_data['arrival_date'])
File "/home/paston2/webapps/latitude/lib/python2.7/django/db/models/manager.py" in filter
  141.         return self.get_query_set().filter(*args, **kwargs)
File "/home/paston2/webapps/latitude/lib/python2.7/django/db/models/query.py" in filter
  550.         return self._filter_or_exclude(False, *args, **kwargs)
File "/home/paston2/webapps/latitude/lib/python2.7/django/db/models/query.py" in _filter_or_exclude
  568.             clone.query.add_q(Q(*args, **kwargs))
File "/home/paston2/webapps/latitude/lib/python2.7/django/db/models/sql/query.py" in add_q
  1194.                             can_reuse=used_aliases, force_having=force_having)
File "/home/paston2/webapps/latitude/lib/python2.7/django/db/models/sql/query.py" in add_filter
  1129.                 connector)
File "/home/paston2/webapps/latitude/lib/python2.7/django/db/models/sql/where.py" in add
  67.             value = obj.prepare(lookup_type, value)
File "/home/paston2/webapps/latitude/lib/python2.7/django/db/models/sql/where.py" in prepare
  316.             return self.field.get_prep_lookup(lookup_type, value)
File "/home/paston2/webapps/latitude/lib/python2.7/django/db/models/fields/related.py" in get_prep_lookup
  136.             return self._pk_trace(value, 'get_prep_lookup', lookup_type)
File "/home/paston2/webapps/latitude/lib/python2.7/django/db/models/fields/related.py" in _pk_trace
  209.         v = getattr(field, prep_func)(lookup_type, v, **kwargs)
File "/home/paston2/webapps/latitude/lib/python2.7/django/db/models/fields/__init__.py" in get_prep_lookup
  292.             return self.get_prep_value(value)
File "/home/paston2/webapps/latitude/lib/python2.7/django/db/models/fields/__init__.py" in get_prep_value
  479.         return int(value)

Exception Type: TypeError at /dailyreport/
Exception Value: int() argument must be a string or a number, not 'datetime.date'

MikeKJ

unread,
May 23, 2014, 5:52:23 AM5/23/14
to django...@googlegroups.com
Ummm do I need to use Q? just dawned on me

MikeKJ

unread,
May 23, 2014, 9:18:45 AM5/23/14
to django...@googlegroups.com

D'oh  needed to reference back to the date model as in

qs = Booking.objects.filter(arrival_date__travel_date__exact=form.cleaned_data['arrival_date'])

arrival_date is a int id reference!!!

sorry and thanks to anyone who was looking at this
Reply all
Reply to author
Forward
0 new messages