On Sat, Feb 5, 2011 at 2:29 PM, Daniel Klein <bringa@gmail.com> wrote:
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 saveself.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_basemanager.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 filterreturn self.get_query_set().filter(*args, **kwargs)File "c:\coding\django-1.1.1\django\db\models\query.py", line 498, in filterreturn self._filter_or_exclude(False, *args, **kwargs)File "c:\coding\django-1.1.1\django\db\models\query.py", line 516, in _filter_or_excludeclone.query.add_q(Q(*args, **kwargs))File "c:\coding\django-1.1.1\django\db\models\sql\query.py", line 1675, in add_qcan_reuse=used_aliases)File "c:\coding\django-1.1.1\django\db\models\sql\query.py", line 1614, in add_filterconnector)File "c:\coding\django-1.1.1\django\db\models\sql\where.py", line 56, in addobj, params = obj.process(lookup_type, value)File "c:\coding\django-1.1.1\django\db\models\sql\where.py", line 269, in processparams = 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_lookupreturn [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_valuereturn 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+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
--
===========================
Regards
Ronghui Yu
--
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+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
No comments:
Post a Comment