admin.py
=======
from django.contrib import admin
from . import models

class PerDiemInline(admin.StackedInline):
        model = models.PerDiem

class AccountInline(admin.StackedInline):
        model = models.Account

class RequestAdmin(admin.ModelAdmin):
        list_display = ('requested_by', 'department', 'date_submitted',
'travel_start', 'travel_end',)
        list_filter = ('department',)
        inlines = (PerDiemInline, AccountInline)

class ApprovalAdmin(admin.ModelAdmin):
        list_display = ('request', 'approved_by', 'approved_at', 'approved')
        list_filter = ('approved', 'approved_by')

class FinalApprovalAdmin(admin.ModelAdmin):
        list_display = ('request', 'approved_by', 'approved_at', 'approved')
        list_filter = ('approved', 'approved_by')

admin.site.register(models.Request, RequestAdmin)
admin.site.register(models.Approval, ApprovalAdmin)
admin.site.register(models.FinalApproval, FinalApprovalAdmin)
=======


models.py
=======
from django.db import models
from django.db.models import Q
import datetime
from maysnet.directory.models import Employee, Department

class Request(models.Model):
        requested_by = models.ForeignKey(Employee,
related_name="foreigntravel_requester")
        department = models.ForeignKey(Department,
related_name="foreigntravel_targetdepartment")
        no_travel_warning = models.BooleanField()
        cibs_name = models.CharField("Name", max_length=100, blank=True,
null=True)
        cibs_title = models.CharField("Title", max_length=100, blank=True,
null=True)
        cibs_organization = models.CharField("Funding Organization",
max_length=100, blank=True, null=True)
        teacher = models.BooleanField()
        substitute_teacher = models.CharField("Teaching Duties Covered By",
max_length=100, blank=True)
        destination = models.CharField(max_length=100)
        travel_start = models.DateField(default=datetime.date.today() +
datetime.timedelta(days=10))
        travel_end = models.DateField(default=datetime.date.today() +
datetime.timedelta(days=10))
        purpose = models.TextField("Purpose of Travel")
        benefit = models.TextField("Benefit to")
        airfare = models.DecimalField(max_digits=7, decimal_places=2,
blank=True, null=True, default=0)
        ground_transportation = models.DecimalField(max_digits=7,
decimal_places=2, blank=True, null=True, default=0)
        registration_fee = models.DecimalField(max_digits=7,
decimal_places=2, blank=True, null=True, default=0)
        meals = models.DecimalField(max_digits=7, decimal_places=2,
blank=True, null=True, default=0)
        lodging = models.DecimalField(max_digits=7, decimal_places=2,
blank=True, null=True, default=0)
        comments = models.TextField(null=True, blank=True)
        date_submitted = models.DateField(auto_now_add=True)
        send_to = models.ForeignKey(Employee, verbose_name="Department Head",
related_name="foreigntravel_requestrecipient")

        def __unicode__(self):
                return self.requested_by.__unicode__() + " - " +
self.date_submitted.strftime("%m/%d/%Y")

        def status(self):
                try:
                        self.approval
                except:
                        return "Pending Approval"
                try:
                        self.finalapproval
                except:
                        if self.approval.approved:
                                return "Pending Final Approval"
                        else:
                                return "Denied"
                if self.finalapproval.approved:
                        return "Approved"
                else:
                        return "Denied"

        class Meta:
                ordering = ["-date_submitted"]
                permissions = (
                        ("approve_foreigntravel", "Can approve foreign travel"),
                        ("finalapprove_foreigntravel", "Can give final approval 
for foreign
travel"),
                        ("view_request", "Can view department foreign travel"),
                )

class PerDiem(models.Model):
        request = models.ForeignKey(Request)
        city = models.CharField(max_length=50)
        lodging = models.DecimalField(max_digits=7, decimal_places=2)
        meals = models.DecimalField(max_digits=7, decimal_places=2)
        order = models.IntegerField(default=1)

        def __unicode__(self):
                return self.city

        class Meta:
                ordering = ["-request", "order"]

class Account(models.Model):
        request = models.ForeignKey(Request)
        number = models.IntegerField()
        name = models.CharField(max_length=50)
        amount = models.DecimalField(max_digits=7, decimal_places=2)

        def __unicode__(self):
                return self.number.__unicode__()

        class Meta:
                ordering = ["-request", "number"]

class Approval(models.Model):
        request = models.OneToOneField(Request)
        approved_by = models.ForeignKey(
                Employee,
                related_name="foreigntravel_approver",
                limit_choices_to=Q
(user_permissions__codename="approve_foreigntravel")|Q
(groups__permissions__codename="approve_foreigntravel")
        )
        approved_at = models.DateField(auto_now_add=True)
        approved = models.BooleanField()
        comment = models.TextField(blank=True, null=True)

        def __unicode__(self):
                return self.approved_at.strftime("%m/%d/%Y")

        class Meta:
                ordering = ["-approved_at"]

class FinalApproval(models.Model):
        request = models.OneToOneField(Request)
        approved_by = models.ForeignKey(
                Employee,
                related_name="foreigntravel_finalapprover",
                limit_choices_to=Q
(user_permissions__codename="finalapprove_foreigntravel")|Q
(groups__permissions__codename="finalapprove_foreigntravel")
        )
        approved_at = models.DateField(auto_now_add=True)
        approved = models.BooleanField()
        comment = models.TextField(blank=True, null=True)

        def __unicode__(self):
                return self.approved_at.strftime("%m/%d/%Y")

        class Meta:
                ordering = ["-approved_at"]

class Option(models.Model):
        name = models.CharField(max_length=100)
        verbose_name = models.CharField(max_length=100)
        value = models.CharField(max_length=100)

        def __unicode__(self):
                return self.verbose_name

        class Meta:
                ordering = ['name']
=======






Here is the debug email I get when it throws the error...
=======

Subject:        [Django] Error (EXTERNAL IP): /admin/foreigntravel/
finalapproval/270/

Traceback (most recent call last):

 File "/usr/local/lib64/python2.5/site-packages/django/core/handlers/
base.py", line 92, in get_response
   response = callback(request, *callback_args, **callback_kwargs)

 File "/usr/local/lib64/python2.5/site-packages/django/contrib/admin/
options.py", line 226, in wrapper
   return self.admin_site.admin_view(view)(*args, **kwargs)

 File "/usr/local/lib64/python2.5/site-packages/django/views/
decorators/cache.py", line 44, in _wrapped_view_func
   response = view_func(request, *args, **kwargs)

 File "/usr/local/lib64/python2.5/site-packages/django/contrib/admin/
sites.py", line 186, in inner
   return view(request, *args, **kwargs)

 File "/usr/local/lib64/python2.5/site-packages/django/db/
transaction.py", line 240, in _commit_on_success
   res = func(*args, **kw)

 File "/usr/local/lib64/python2.5/site-packages/django/contrib/admin/
options.py", line 873, in change_view
   return self.render_change_form(request, context, change=True,
obj=obj)

 File "/usr/local/lib64/python2.5/site-packages/django/contrib/admin/
options.py", line 590, in render_change_form
   ], context, context_instance=context_instance)

 File "/usr/local/lib64/python2.5/site-packages/django/shortcuts/
__init__.py", line 20, in render_to_response
   return HttpResponse(loader.render_to_string(*args, **kwargs),
**httpresponse_kwargs)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
loader.py", line 108, in render_to_string
   return t.render(context_instance)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 178, in render
   return self.nodelist.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 779, in render
   bits.append(self.render_node(node, context))

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 792, in render_node
   return node.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
loader_tags.py", line 97, in render
   return compiled_parent.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 178, in render
   return self.nodelist.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 779, in render
   bits.append(self.render_node(node, context))

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 792, in render_node
   return node.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
loader_tags.py", line 97, in render
   return compiled_parent.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 178, in render
   return self.nodelist.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 779, in render
   bits.append(self.render_node(node, context))

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 792, in render_node
   return node.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
loader_tags.py", line 24, in render
   result = self.nodelist.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 779, in render
   bits.append(self.render_node(node, context))

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 792, in render_node
   return node.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
defaulttags.py", line 155, in render
   nodelist.append(node.render(context))

 File "/usr/local/lib64/python2.5/site-packages/django/template/
loader_tags.py", line 111, in render
   return self.template.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 178, in render
   return self.nodelist.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 779, in render
   bits.append(self.render_node(node, context))

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 792, in render_node
   return node.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
defaulttags.py", line 155, in render
   nodelist.append(node.render(context))

 File "/usr/local/lib64/python2.5/site-packages/django/template/
defaulttags.py", line 155, in render
   nodelist.append(node.render(context))

 File "/usr/local/lib64/python2.5/site-packages/django/template/
defaulttags.py", line 244, in render
   return self.nodelist_false.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 779, in render
   bits.append(self.render_node(node, context))

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 792, in render_node
   return node.render(context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 831, in render
   return _render_value_in_context(output, context)

 File "/usr/local/lib64/python2.5/site-packages/django/template/
__init__.py", line 811, in _render_value_in_context
   value = force_unicode(value)

 File "/usr/local/lib64/python2.5/site-packages/django/utils/
encoding.py", line 71, in force_unicode
   s = unicode(s)

 File "/usr/local/lib64/python2.5/site-packages/django/forms/
forms.py", line 356, in __unicode__
   return self.as_widget()

 File "/usr/local/lib64/python2.5/site-packages/django/forms/
forms.py", line 391, in as_widget
   return widget.render(name, data, attrs=attrs)

 File "/usr/local/lib64/python2.5/site-packages/django/contrib/admin/
widgets.py", line 231, in render
   output = [self.widget.render(name, value, *args, **kwargs)]

 File "/usr/local/lib64/python2.5/site-packages/django/forms/
widgets.py", line 404, in render
   options = self.render_options(choices, [value])

 File "/usr/local/lib64/python2.5/site-packages/django/forms/
widgets.py", line 420, in render_options
   for option_value, option_label in chain(self.choices, choices):

 File "/usr/local/lib64/python2.5/site-packages/django/forms/
models.py", line 915, in __iter__
   yield self.choice(obj)

 File "/usr/local/lib64/python2.5/site-packages/django/forms/
models.py", line 922, in choice
   return (key, self.field.label_from_instance(obj))

 File "/usr/local/lib64/python2.5/site-packages/django/forms/
models.py", line 968, in label_from_instance
   return smart_unicode(obj)

 File "/usr/local/lib64/python2.5/site-packages/django/utils/
encoding.py", line 44, in smart_unicode
   return force_unicode(s, encoding, strings_only, errors)

 File "/usr/local/lib64/python2.5/site-packages/django/utils/
encoding.py", line 71, in force_unicode
   s = unicode(s)

 File "/srv/www/django/maysnet/forms/foreigntravel/models.py", line
30, in __unicode__
   return self.requested_by.__unicode__() + " - " +
self.date_submitted.strftime("%m/%d/%Y")

 File "/usr/local/lib64/python2.5/site-packages/django/db/models/
fields/related.py", line 257, in __get__
   rel_obj = QuerySet(self.field.rel.to).get(**params)

 File "/usr/local/lib64/python2.5/site-packages/django/db/models/
query.py", line 305, in get
   % self.model._meta.object_name)

DoesNotExist: Employee matching query does not exist.


<ModPythonRequest
path:/admin/foreigntravel/finalapproval/270/,
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
COOKIES:{'__utma':
'99535361.1811631547.1260301450.1261455156.1261457264.12',
'__utmz': '99535361.1260301450.1.1.utmcsr=(direct)|utmccn=(direct)|
utmcmd=(none)',
'sessionid': '5a82d41a929af9a384cd1e618a5db584'},
META:{'AUTH_TYPE': None,
'CONTENT_LENGTH': 0,
'CONTENT_TYPE': None,
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT': 'application/xml,application/xhtml+xml,text/
html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'HTTP_ACCEPT_ENCODING': 'gzip,deflate',
'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8',
'HTTP_CONNECTION': 'keep-alive',
'HTTP_COOKIE': '__utmz=99535361.1260301450.1.1.utmcsr=(direct)|utmccn=
(direct)|utmcmd=(none);
__utma=99535361.1811631547.1260301450.1261455156.1261457264.12;
sessionid=5a82d41a929af9a384cd1e618a5db584',
'HTTP_REFERER': 'https://securemays.tamu.edu/admin/foreigntravel/
finalapproval/',
'HTTP_USER_AGENT': 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2;
en-US) AppleWebKit/532.8 (KHTML, like Gecko) Chrome/4.0.288.1 Safari/
532.8',
'PATH_INFO': u'/admin/foreigntravel/finalapproval/270/',
'PATH_TRANSLATED': None,
'QUERY_STRING': None,
'REMOTE_HOST': None,
'REMOTE_IDENT': None,
'REMOTE_USER': None,
'REQUEST_METHOD': 'GET',
'SCRIPT_NAME': '',
'SERVER_PORT': 443,
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'mod_python'}>
=======

...also, this only happens with the approval and final_approval
models...the request model works fine and shows the details with no
problem.
-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.


Reply via email to