επικαιροποίησης ενός DateTimeField auto_now σε ένα γονέα μοντέλο w / Django

ψήφοι
9

Έχω δύο μοντέλα: μηνύματος και των συνημμένων. Κάθε προσάρτηση συνδέεται σε ένα συγκεκριμένο μήνυμα, χρησιμοποιώντας ένα ForeignKey με το μοντέλο Συνημμένο. Και τα δύο μοντέλα έχουν auto_now DateTimeField ονομάζεται ενημέρωση. Προσπαθώ να το κάνω έτσι ώστε όταν κάποιο συνημμένο αποθηκεύεται, θέτει επίσης το ενημερωμένο πεδίο για το σχετικό μήνυμα στο τώρα. Εδώ είναι κωδικός μου:

def save(self):
    super(Attachment, self).save()
    self.message.updated = self.updated

Θα το έργο αυτό, και αν μπορεί να το εξηγήσει σε μένα, γιατί; Αν όχι, πώς θα επιτευχθεί αυτό;

Δημοσιεύθηκε 21/08/2008 στις 18:41
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
6

Θα πρέπει επίσης να στη συνέχεια να αποθηκεύσετε το μήνυμα. Στη συνέχεια, ότι θα πρέπει να εργαστεί.

Απαντήθηκε 21/08/2008 στις 18:57
πηγή χρήστη

ψήφοι
1

Πεδία DateTime με auto_now ενημερώνονται αυτόματα με την κλήση save(), έτσι ώστε να μην χρειάζεται να τους ενημερώσετε με μη αυτόματο τρόπο. Django θα κάνω αυτή τη δουλειά για σας.

Απαντήθηκε 16/09/2008 στις 12:44
πηγή χρήστη

ψήφοι
0

Η σωστή έκδοση για το έργο είναι: (προσοχή στην τελευταία γραμμή self.message.save())

class Message(models.Model):
    updated = models.DateTimeField(auto_now = True)
    ...

class Attachment(models.Model):
    updated = models.DateTimeField(auto_now = True)
    message = models.ForeignKey(Message)

    def save(self):
        super(Attachment, self).save()
        self.message.save()
Απαντήθηκε 31/10/2015 στις 06:11
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more