Aquí hay un código en un tutorial de django por el que estoy pasando. Nunca me he encontrado con la función súper en Python y la forma en que se usa aquí es diferente de los ejemplos que he visto en línea. Es decir, generalmente cuando usa super, ¿no tiene múltiples clases? Está en la última línea: super(Snippet, self).save(force_insert, force_update)
¿Podría explicar exactamente qué está pasando allí y cuál sería una forma alternativa de escribir eso? ¿Parece que el método de guardar se está llamando aquí?uso de la súper función de pitón en django modelo
class Snippet(models.Model):
title = models.CharField(max_length=255)
language = models.ForeignKey(Language)
author = models.ForeignKey(User)
description = models.TextField()
description_html = models.TextField(editable=False)
code = models.TextField()
highlighted_code = models.TextField(editable=False)
tags = TagField()
pub_date = models.DateTimeField(editable=False)
updated_date = models.DateTimeField(editable=False)
class Meta:
ordering = ['-pub_date']
def __unicode__(self):
return self.title
def save(self, force_insert=False, force_update=False):
if not self.id:
self.pub_date = datetime.datetime.now()
self.updated_date = datetime.datetime.now()
self.description_html = markdown(self.description)
self.highlighted_code = self.highlight()
super(Snippet, self).save(force_insert, force_update)
No se trata solo de cambiar los antepasados de Snippet; si hay una cierta forma de herencia múltiple en una clase secundaria de Snippet, el resultado podría ser diferente al correcto 'super (Snippet, self)'. –