Максимальная глубина рекурсии превышена при предоставлении уникального идентификатора - PullRequest
2 голосов
/ 21 октября 2010

Я хотел предоставить уникальный идентификатор для разных категорий моделей в моей базе данных. Итак, я ввел фиктивную модель:

class GUUID(models.Model):
    guuid = models.PositiveSmallIntegerField(_(u"Dummy GUUID"), default=1)

и в модели, которую я хочу иметь уникальный идентификатор:

class Event(models.Model): 
    unique = models.IntegerField(blank=False, editable=False)  

    def save(self):
        guuid = GUUID()
        guuid.save()
        self.unique = guuid.id
        self.save()

Но при сохранении моей модели я получаю:
maximum recursion depth exceeded while calling a Python object и 997 QUUID obects в дБ. Почему это происходит?

1 Ответ

6 голосов
/ 21 октября 2010

Я думаю, вы хотите заменить self.save() на super(Event, self).save(). Также неплохо было бы взять параметры из метода сохранения событий и передать их:

def save(self, *args, **kwargs):
    #... other code here
    super(Event, self).save(*args, **kwargs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...