2017-02-07 2 views
1

Я пытаюсь создать объект, используя обратную сторону отношения. (много сторон).Выполнение создания связанного объекта в django прекращает выполнение кода

Я столкнулся с проблемой, что мой код в значительной степени останавливает момент, когда я выполняю фактическое создание, он терпит неудачу, но молча. Размещение любых инструкций после не выполняется. Вся программа не сбой или ошибки. Без каких-либо ошибок или исключений, показывающих stacktraces, я не могу понять, что на самом деле неправильно здесь.

Вот вышеупомянутое заявление:

# Class method on Pot object 

def create_static_notification(self, interval, duration, value_exceeded, is_high, measurement_type, level): 
    self.staticnotification_set.create(
     interval=interval, 
     duration=duration, 
     value_exceeded=value_exceeded, 
     is_high=is_high, 
     measurement_type=measurement_type, 
     level=level, 
    ) 

    print 'I will never be printed):' 

модель он пытается создать экземпляр это:

class StaticNotification(models.Model): 
    registered_on = models.DateTimeField(default=timezone.now) 
    dismissed_on = models.DateTimeField(blank=True, null=True) 
    is_relevant = models.BooleanField(default=True) 

    interval = models.DurationField() 
    duration = models.DurationField() 
    value_exceeded = models.FloatField() 
    is_high = models.BooleanField(default=True) 

    measurement_type = models.ForeignKey(StaticParameterType, on_delete=models.CASCADE) 
    level = models.ForeignKey(ReportLevel, on_delete=models.CASCADE) 
    pot = models.ForeignKey(Pot, on_delete=models.CASCADE) 

Я подтверждено, что все поля, которые должны быть там, здесь.

Дополнительный контекст: Этот код запускается через пользовательскую команду django, которая выполняется по протоколу MQTT. Последующие звонки из MQTT на самом деле все еще работают, один вызов останавливается. Следующие вызовы проходят, только эта часть кода не работает.

+0

Проверьте свои операторы SQL в журналах. Выполняются ли они с правильными параметрами? –

+0

Только что проверил журналы, SQL-операторов, связанных с этой моделью, не выполняется. Поэтому он никогда не достигает стадии SQL. – Tich

+0

попытайтесь выполнить создание без обратной стороны. –

ответ

0

Я нашел ответ и источник моего смятения. Проблема полностью связана с опечаткой, похоже, что measure_type не является переменной, которую я обрабатывал из строки UTF-8, что вызывает повышение ValueError.

Проблема была поймана неудачной реализацией стека, где-то между разрешением и моей общей обработкой исключительных ситуаций. Значение ValueError было поймано с помощью простого пропущенного утверждения после него.

Это, конечно же, означало, что ошибка была съедена, и я не был осведомлен о ней, что происходит при возникновении любой другой ошибки.

Самый большой урок, не пропускайте исключения. Даже если вы пишете стек в спешке.

Смежные вопросы