i put this function in "Match" class :
def points(self):
if self.score_local > self.score_visitor:
return (self.club_local.won)+1 and (self.club_visitor.lost)+1
elif self.score_local < self.score_visitor:
return (self.club_local.lost)+1 and (self.club_visitor.won)+1
else:
return (self.club_local.draw)+1 and (self.club_visitor.draw)+1
and i want it to update fields and 'CalcPoints' function in "Club" class 
class Club(models.Model):
...
def CalcPoints(self):
return self.won*3 + self.draw

but until now it does not update objects (( how can i use post_save here )) 

On Saturday, April 20, 2019 at 9:09:01 AM UTC+2, Derek wrote:
>
> That should just require a basic if/then logic test; "get" the correct 
> Club object, update the win/loss field and save the Club. Repeat for both 
> Clubs.
>
> On Thursday, 18 April 2019 14:09:41 UTC+2, omar ahmed wrote:
>>
>> thank you for response , derek
>> but how can i increment 'win' 'lost' or 'draw' Club fields by 'winner' 
>> Match field
>>
>> On Wednesday, April 17, 2019 at 3:26:22 PM UTC+2, Derek wrote:
>>>
>>> 1. Add a "winner" field to your Match
>>> 2. Implement a post_save  signal for the Match model that updates the 
>>> "won" or "lost" fields for each Club in the match (simple if/then logic 
>>> based on winner).
>>>
>>> PS I think the default values for "won" and "lost" for a Club should be 
>>> "0" and not "1".
>>>
>>> On Tuesday, 16 April 2019 20:19:34 UTC+2, omar ahmed wrote:
>>>>
>>>> hello ... i have two models "Club" class and "Match" class and it has 
>>>> foreign key to Club
>>>> now i want to increment "won" field (or draw or lost) in "Club" class 
>>>> by "score_local" and "score_visitor" in "Match" class ..
>>>> how can i do this
>>>> class Club(models.Model):
>>>> name = models.CharField(max_length=100)
>>>> won = models.IntegerField(default=1)
>>>> draw = models.IntegerField(default=1)
>>>> lost = models.IntegerField()
>>>> goal_for = models.IntegerField()
>>>> goal_against = models.IntegerField()
>>>>
>>>>
>>>> class Match(models.Model):
>>>> play_date = models.DateTimeField('play date')
>>>> club_visitor = models.ForeignKey(Club, on_delete=models.CASCADE, 
>>>> related_name='match_club_visitor')
>>>> club_local = models.ForeignKey(Club, on_delete=models.CASCADE, 
>>>> related_name='match_club_local')
>>>> score_visitor = models.IntegerField()
>>>> score_local = models.IntegerField()
>>>>
>>>

-- 
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 https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/fec08ef3-9ee0-4a3e-98fa-44775e80baba%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to