On Feb 9, 7:05 pm, Russell Keith-Magee <freakboy3...@gmail.com> wrote:
> On Mon, Feb 9, 2009 at 8:43 PM, jfmxl <jf...@yahoo.com> wrote:
>
> > On Feb 9, 5:21 pm, Russell Keith-Magee <freakboy3...@gmail.com> wrote:
> >> On Mon, Feb 9, 2009 at 6:58 PM, jfmxl <jf...@yahoo.com> wrote:
> > Sorry, I am new to python and I guess you hadn't bothered to read the
> > elementary tutorial that I was following. I should have been more
> > specific:
>
> Specifics always help. And FYI: I have read the tutorial. I'm one of
> the core developers of Django, so I'm well aware of what the tutorial
> says.

I'm sorry. I didn't mean to accuse you of negligence at all! I just
meant that as an experienced python programmer you might have had a
different entry point to django than I did. I was unaware that you are
of the core. My apologies in any case.

> > So it was in response to that advice that I "saw he installation docs
> > for more information" and didn't find the relief spoken of and so
> > wrote here.
>
> > Thanks for your help, but I still am having a problem.
>
> Without seeing your code, its almost impossible to determine the cause
> of your problem. My initial guess would be that one of three things
> has happened:
>
>  1) You haven't actually saved the models.py file where you have
> defined the __unicode__() methods. An obvious error, but a
> surprisingly common one.

Yes. Just the sort of mistake I'm prone to make too. But not this
time.

>  2) You haven't restarted your python shell - you've just continued
> working with an old shell. You need to start a new Python shell
> session to force the models.py file to be reloaded.

I actually thought of that one myself after the first or second run.

>  3) You've misspelled __unicode__ in your models.py file. Most likely
> culprit here - using single underscores rather than double underscores
> in the method name. The method needs to be called _ _ unicode _ _
> (self). If you  have used a different name, you won't see an error
> (since the alternate name will be a valid Python method name) but it
> won't generate the output you expect.

I've double-checked and that's not the case. I had cut and pasted the
code in question.

> If you post your example code as it currently stands, we may be able
> to provide more assistance.

I'm sorry it's so lengthy:

<console>
j...@ws0:~/src/python/django/mysite$ django-admin.py --version
1.1 pre-alpha SVN-9820

j...@ws0:~/src/python/django/mysite$ cat polls/models.py
from django.db import models
import datetime
# ...

# Create your models here.

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice = models.CharField(max_length=200)
    votes = models.IntegerField()

class Poll(models.Model):
    # ...
    def __unicode__(self):
        return self.question

class Choice(models.Model):
    # ...
    def __unicode__(self):
        return self.choice

class Poll(models.Model):
    # ...
    def was_published_today(self):
        return self.pub_date.date() == datetime.date.today()

j...@ws0:~/src/python/django/mysite$ ./manage.py shell
Python 2.5.2 (r252:60911, Oct  5 2008, 19:24:49)
Type "copyright", "credits" or "license" for more information.

IPython 0.8.4 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints
more.

In [1]: from mysite.polls.models import Poll, Choice

In [2]: Poll.objects.all()
Out[2]: [<Poll: Poll object>]

In [3]: Poll.objects.filter(id=1)
Out[3]: [<Poll: Poll object>]

In [4]: Poll.objects.filter(question__startswith='What')
Out[4]: [<Poll: Poll object>]

In [5]: Poll.objects.get(pub_date__year=2009)
Out[5]: <Poll: Poll object>

In [6]: Poll.objects.get(id=2)
---------------------------------------------------------------------------
DoesNotExist                              Traceback (most recent call
last)

/home/jfl/src/python/django/mysite/<ipython console> in <module>()

/usr/lib/python2.5/site-packages/django/db/models/manager.py in get
(self, *args, **kwargs)
     91
     92     def get(self, *args, **kwargs):
---> 93         return self.get_query_set().get(*args, **kwargs)
     94
     95     def get_or_create(self, **kwargs):

/usr/lib/python2.5/site-packages/django/db/models/query.py in get
(self, *args, **kwargs)
    340         if not num:
    341             raise self.model.DoesNotExist("%s matching query
does not exist."
--> 342                     % self.model._meta.object_name)
    343         raise self.model.MultipleObjectsReturned("get()
returned more than one %s -- it returned %s! Lookup parameters were
%s"
    344                 % (self.model._meta.object_name, num, kwargs))

DoesNotExist: Poll matching query does not exist.

In [7]: Poll.objects.get(pk=1)
Out[7]: <Poll: Poll object>

In [8]: p = Poll.objects.get(pk=1)

In [9]: p.was_published_today()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call
last)

/home/jfl/src/python/django/mysite/<ipython console> in <module>()

AttributeError: 'Poll' object has no attribute 'was_published_today'

In [10]: p = Poll.objects.get(pk=1)

In [11]: p.choice_set.create(choice='Not much', votes=0)
Out[11]: <Choice: Choice object>

In [12]: p.choice_set.create(choice='The sky', votes=0)
Out[12]: <Choice: Choice object>

In [13]: c = p.choice_set.create(choice='Just hacking again', votes=0)

In [14]:

In [15]: c.poll
Out[15]: <Poll: Poll object>

In [16]: p.choice_set.all()
Out[16]: [<Choice: Choice object>, <Choice: Choice object>, <Choice:
Choice object>]

In [17]: p.choice_set.count()
Out[17]: 3

In [18]: Choice.objects.filter(poll__pub_date__year=2009)
Out[18]: [<Choice: Choice object>, <Choice: Choice object>, <Choice:
Choice object>]

In [19]: c = p.choice_set.filter(choice__startswith='Just hacking')

In [20]: c.delete()

In [21]: p.choice_set.count()
Out[21]: 2

In [22]:
Do you really want to exit ([y]/n)? y
j...@ws0:~/src/python/django/mysite$
</console>

The response at [9] seems to indicate that none of the specifications
below the original first two seems to have been read by the
interpreter?

Thanks for taking the rime to help me.

>
> Yours,
> Russ Magee %-)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to