You need to use Django signals to provide a custom "post_save".  There is a 
good tutorial here:
https://simpleisbetterthancomplex.com/tutorial/2016/07/28/how-to-create-django-signals.html


On Monday, 22 April 2019 16:22:19 UTC+2, omar ahmed wrote:
>
> 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 [email protected].
To post to this group, send email to [email protected].
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/cdf83be9-5f8d-4bf8-bd5d-939599e08726%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to