Assign an Instance in a ForeingKey in Django -
Assign an Instance in a ForeingKey in Django -
i got kind of error before , prepare it, don't know what's happening, how can prepare it?
i'm getting:
cannot assign "u'2'": "closedbets.bet_user_a" must "teams" instance.
my models:
class closedbets(models.model): match = models.foreignkey(match2x1) user_a = models.foreignkey(user,related_name="+") bet_user_a = models.foreignkey(teams,related_name="bet_user_a") user_b = models.foreignkey(user) bet_user_b = models.foreignkey(teams,related_name='bet') def __unicode__(self): match = "%s vs %s"%(self.match.team_a,self.match.team_b) homecoming match my views:
z = bets.objects.filter(match_id=request.post['match']).exclude(user=self.request.user).filter(~q(bet_id=request.post['team']),value=request.post['valor']) bet = z.first() if bet: print bet.match_id print bet.user_id if z: #si hay z closedbets.objects.create(match_id=request.post['match'],user_a=self.request.user,bet_user_a=request.post['team'],user_b=bet.user_id,bet_user_b=bet.match_id)
match , bet_user_a foreign keys can't assign simple strings/integers these fields. have instances of fk models db , assign them in create() call:
closedbets.objects.create( match=match2x1.objects.get(pk=request.post['match']), user_a=self.request.user, bet_user_a=teams.objects.get(pk=request.post['team']), user_b=bet.user_id, bet_user_b=bet.match_id) also note field in closedbets model called match trying create instance match_id field.
django django-models django-queryset
Comments
Post a Comment