Hi James, Thanks again for responding. I didn’t post my actual models as they are quite large and my problem is more about understanding proper technique than anything. Self.name did fix my immediate problem thanks, however I am really curious about your last paragraph … how can I tie the customer directly to the service order ? .. I have no idea how I might do it in Django.
C. From: django-users@googlegroups.com [mailto:django-users@googlegroups.com] On Behalf Of James Schneider Sent: Tuesday, June 02, 2015 6:01 PM To: django-users@googlegroups.com Subject: Re: new to Django having models/views/templates question Posting the actual model code will probably help. Your template has this: item.customer_location.name <http://item.customer_location.name/> But you specified the issue later as this: item.customer_location.customer The former won't work per your summarized model definitions. The Location model has no attribute called 'name'. The latter will work only if your __str__() function is encoding the data correctly. The reason you are getting a recursion error is because of the 'unicode(self)' (which I'm assuming is part of your model's __str__() definition). You need to change that to something like unicode(self.name <http://self.name> ). I'm not even sure if the unicode() call is even necessary (haven't done a ton of Python 3 yet). As far as referring to the Customer name, you can do {{ item.customer_location.customer.name <http://item.customer_location.customer.name> }} Have you thought about tying in the customer directly to the service order? It shouldn't be an issue to have a customer tied to both the location and the service order. While it'll work the way you have it, your lookups will become more complicated (and expensive from a processing perspective) since you are forcing a lookup across multiple tables. It may not agree with your business process, though. Just a thought. -James On Jun 2, 2015 11:57 AM, "Chris Strasser" <cstrasse...@gmail.com <mailto:cstrasse...@gmail.com> > wrote: Hi James thanks for the response... this line: <td>{{item.customer_location.customer}}</td> ..... worked this morning and all last week now gives this error: RuntimeError at /sto/ maximum recursion depth exceeded while calling a Python object Request Method: GET Request URL: http://10.0.0.102:8080/sto/ Django Version: 1.8 Exception Type: RuntimeError Exception Value maximum recursion depth exceeded while calling a Python object I can reproduce the encoding error but i forget how to get there at the moment ... On Tuesday, June 2, 2015 at 2:00:22 PM UTC-4, Chris Strasser wrote: Hi am plugging away at learning Django and have done well so far (thanks to great documentation and Stackoverflow) but I have run into a problem that i cant seem to figure out. I have a model that refers to another model that refers to another model. example : Class ServiceOrder id -integer customer location = foreign key to location def __str__(self): return self.stid class Location: id -integer address -char customer- foreign key to customer q= '%s %s %s %s ' %(self.addr1, self.addr2, self.city, self.country) return unicode(q).encode('utf-8') Class Customer id=int name- char return unicode(self).encode('utf-8') I have a template that lists the service orders view is below: def serviceorder_list(request, status = 'Closed'): ist = ServiceOrder.objects.filter(status = status, stid__lte=20239).select_related('customer_location__customer') #stid__lte 20239 to fix database error ... i have existing data that has its own issues... count = order_list.count() context ={'list': sto_list, 'count': count} return render(request, 'order/listview.html', context) in my listview.html {% for item in list %} {% if item.project %} <td><a href="{{ item.stid }}">{{item.stid}}</a></td> <td>{{item.project}}</td> <td>{{item.customer_location.name <http://item.customer_location.name> }}</td> ---------------------- 2 questions here 1) it throws an error on customer names that have accents etc ... <td>{{item.notes}}</td> 2) i am confused about how to properly referenece the customer name or anything else that is not in the Service order model. <td>{{item.person_responsible}}</td> <td>{{item.entrydate|date:'M-d-y'}}</td> <td>{{item.status}}</td> <td>{{item.billing}}</td> </tr> I have read the docs many times and the more i read the more i know that i don't know ... any help would be appreciated Thanks -- 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 <mailto:django-users+unsubscr...@googlegroups.com> . To post to this group, send email to django-users@googlegroups.com <mailto: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/bd0e074b-f45e-404b-87c7-919c2176d2dc%40googlegroups.com <https://groups.google.com/d/msgid/django-users/bd0e074b-f45e-404b-87c7-919c2176d2dc%40googlegroups.com?utm_medium=email&utm_source=footer> . For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to a topic in the Google Groups "Django users" group. To unsubscribe from this topic, visit https://groups.google.com/d/topic/django-users/9G-WUE4A8ZA/unsubscribe. To unsubscribe from this group and all its topics, send an email to django-users+unsubscr...@googlegroups.com <mailto:django-users+unsubscr...@googlegroups.com> . To post to this group, send email to django-users@googlegroups.com <mailto: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/CA%2Be%2BciUY1dFyCTD7PeJsVDiqnzLdEXeqOe1bHOgLuCjeyMjV4g%40mail.gmail.com <https://groups.google.com/d/msgid/django-users/CA%2Be%2BciUY1dFyCTD7PeJsVDiqnzLdEXeqOe1bHOgLuCjeyMjV4g%40mail.gmail.com?utm_medium=email&utm_source=footer> . For more options, visit https://groups.google.com/d/optout. -- 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/00d401d09de4%24f8b76fe0%24ea264fa0%24%40gmail.com. For more options, visit https://groups.google.com/d/optout.