Django export the CSV file from database

92 views
Skip to first unread message

hito koto

unread,
May 21, 2014, 10:24:22 PM5/21/14
to django...@googlegroups.com
Hello,

I have the  errors in the following:
I don't know how can i to do ?



Request Method: GET
Request URL: http://articlet/export_excel/
Django Version: 1.6.2
Exception Type: AttributeError
Exception Value:
'datetime.time' object has no attribute 'date'
Exception Location: /var/www/article/views.py in export_excel, line 195
Python Executable: /usr/bin/python
Python Version: 2.6.6




Traceback Switch to copy-and-paste view

  • /usr/lib/python2.6/site-packages/django/core/handlers/base.py in get_response
    1.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
      ...
  • /var/www/articlee/views.py in export_excel
    1.         date = att[2].date



















This is my full  views.py:

 from datetime import datetime, time, date, timedelta
class workLog(object):
    def __init__(self, name, day, attTime, leaveTime):
        self.name = name
        self.day = day
        self.attTime = attTime
        self.leaveTime = leaveTime

def export_excel(request):
    from staffprofile.models import Myattendance,Myleavework
    response = HttpResponse(mimetype='application/vnd.ms-excel; charset="Shift_JIS"')
    response['Content-Disposition'] = 'attachment; filename=file.csv'
    writer = csv.writer(response)
    titles = ["No","name""),"day"),"attTime","leaveTime")]
    writer.writerow(titles)
   
    S = Staff.objects.all()
    row = [workLog('name', i, None, None) for i in range(32)]

    for att in attendance:
        day = att[2].day
        log = logMonth[day]
        id = att[0]
        log.name = S.filter(id = id).values("user_name")
        if log.attTime is None:
            log.attTime = att[2]
        elif log.attTime < att[2]:
            log.attTime = att[2]

    for leav in leavework:
        day = leav[2].day
        log = logMonth[day]
        if log.leaveTime is None:
            log.leaveTime = leav[2]
        elif log.leaveTime < leav[2]:
            log.leaveTime = leav[2]

    for log in logMonth:
        if log.attTime is not None:
            if log.leaveTime is not None:
                row.append((log.attTime, log.leaveTime))
            else:
                row.append(None)
        else:
            if log.leaveTime is not None:
                row(None)

        writer.writerow(row)

This is my full models.py

class Staff(models.Model):
    user = models.OneToOneField(User, null=False)
    user_name = models.CharField(max_length=255)
    first_kana = models.CharField(max_length=255)
    last_kana  = models.CharField(max_length=255)
    employee_number = models.CharField(max_length=22)

    def __unicode__(self):
        return self.user_name

class attendance(models.Model):
    user = models.ForeignKey(Staff, verbose_name = "name")
    contact_date = models.DateField(verbose_name = "date", auto_now_add=True)
    contact_time = models.TimeField(verbose_name = "time", auto_now_add=True)

    class Meta:
        ordering = ["-contact_time"]

    def __unicode__(self):
        return unicode(self.user)

class leavework(models.Model):
    user = models.ForeignKey(Staff,  verbose_name = "name")
    contact_date = models.DateField(verbose_name = "date", default=datetime.now)
    contact_time = models.TimeField(verbose_name = "time", default=datetime.now)

    class Meta:
        ordering = ["-contact_time"]

    def __unicode__(self):
          return unicode(self.user)


Andrew Farrell

unread,
May 21, 2014, 10:28:31 PM5/21/14
to django...@googlegroups.com
So the error is somewhere here:
for att in attendance:
    day = att[2].day

But I can't see where `attendance` is defined.
I suspect you'll have a similar error in
for leav in leavework:
    day = leav[2].day

But also can't see where `leavework` is defined.


--
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...@googlegroups.com.
To post to this group, send email to django...@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/dcc033ee-76d7-4870-a495-1c8fb62cb047%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

hito koto

unread,
May 21, 2014, 10:39:05 PM5/21/14
to django...@googlegroups.com
Sorry, It was my mistake
This is correct

This is my full  views.py:

 from datetime import datetime, time, date, timedelta
class workLog(object):
    def __init__(self, name, day, attTime, leaveTime):
        self.name = name
        self.day = day
        self.attTime = attTime
        self.leaveTime = leaveTime

def export_excel(request):
    from staffprofile.models import Myattendance,Myleavework
    response = HttpResponse(mimetype='
application/vnd.ms-excel; charset="Shift_JIS"')
    response['Content-Disposition'] = 'attachment; filename=file.csv'
    writer = csv.writer(response)
    titles = ["No","name""),"day"),"attTime","leaveTime")]
    writer.writerow(titles)
    obj_all = attendance.objects.filter().values_list('user', 'contact_date', 'contact_tim    e').order_by("-contact_date")
    lea = leavework.objects.filter().values_list('contact_time').order_by('-contact_date')

    S = Staff.objects.all()
    row = [workLog('name', i, None, None) for i in range(32)]

    for att in obj_all:

        day = att[2].day
        log = row [day]

        id = att[0]
        log.name = S.filter(id = id).values("user_name")
        if log.attTime is None:
            log.attTime = att[2]
        elif log.attTime < att[2]:
            log.attTime = att[2]

    for leav in lea:

        day = leav[2].day
        log = row [day]

        if log.leaveTime is None:
            log.leaveTime = leav[2]
        elif log.leaveTime < leav[2]:
            log.leaveTime = leav[2]

    for log in row:

2014年5月22日木曜日 11時28分31秒 UTC+9 Andrew Farrell:
Reply all
Reply to author
Forward
0 new messages