I'm teaching myself django by idling poking at a project in the hope that it 
may become a playable browser game some day. It's early days. 

So I have a model "Game", which is one game session. Each game is supposed 
to have two teams. I doubt the content of the Team model matters very much, 
so I'll just paste the relevant bits from Game:

class Game(models.Model):

team1 = models.OneToOneField(Team, related_name="team1", null=True)

team2 = models.OneToOneField(Team, related_name="team2", null=True)

 

def __init__(self, *args, **kwargs):

super(Game, self).__init__(self, *args, **kwargs)

self.team1 = Team()

self.team2 = Team()


The code I used to have, which worked, manually created a game and its two 
teams. This was in the view for the "create new game" page, which I found 
all kinds of ugly. Since every game should start out with exactly two teams 
in it, it makes most sense to have that code inside the Game model, right?

So here's the error I'm currently getting when I try to save a game:

>>> from game.models import Team, Game

>>> tg = Game(name="testgame")

>>> tg.save()

Traceback (most recent call last):

  File "<console>", line 1, in <module>

  File "c:\coding\django-1.1.1\django\db\models\base.py", line 410, in save

    self.save_base(force_insert=force_insert, force_update=force_update)

  File "c:\coding\django-1.1.1\django\db\models\base.py", line 470, in 
save_base

    manager.filter(pk=pk_val).extra(select={'a': 
1}).values('a').order_by())):

  File "c:\coding\django-1.1.1\django\db\models\manager.py", line 129, in 
filter

    return self.get_query_set().filter(*args, **kwargs)

  File "c:\coding\django-1.1.1\django\db\models\query.py", line 498, in 
filter

    return self._filter_or_exclude(False, *args, **kwargs)

  File "c:\coding\django-1.1.1\django\db\models\query.py", line 516, in 
_filter_or_exclude

    clone.query.add_q(Q(*args, **kwargs))

  File "c:\coding\django-1.1.1\django\db\models\sql\query.py", line 1675, in 
add_q

    can_reuse=used_aliases)

  File "c:\coding\django-1.1.1\django\db\models\sql\query.py", line 1614, in 
add_filter

    connector)

  File "c:\coding\django-1.1.1\django\db\models\sql\where.py", line 56, in 
add

    obj, params = obj.process(lookup_type, value)

  File "c:\coding\django-1.1.1\django\db\models\sql\where.py", line 269, in 
process

    params = self.field.get_db_prep_lookup(lookup_type, value)

  File "c:\coding\django-1.1.1\django\db\models\fields\__init__.py", line 
210, in get_db_prep_lookup

    return [self.get_db_prep_value(value)]

  File "c:\coding\django-1.1.1\django\db\models\fields\__init__.py", line 
361, in get_db_prep_value

    return int(value)

TypeError: int() argument must be a string or a number, not 'Game'

 
I have no idea what this error means, and I strongly suspect I'm Doing It 
Wrong [tm] in the first place. There's probably a very easy way to do this 
that I'm not seeing.


Thanks!

-- 
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