среда, 29 мая 2013 г.

Отладка приложений в Django

Если в PHP, чтобы узнать значение переменной в том или ином месте кода, мы применяем echo, var_dump( ), print_r( ), то в фреймворке Django в коде моделей (models.py) или представлений (views.py) мы можем два метода: print и assert False, myvar


1. Метод print можно использовать, если есть возможность посмотреть значения, выводимые в консоли (как правило, это консоль сервера разработки, запущенного на локали):
class Winner(models.Model):
    """
    Победитель конкурса - Мисс / Мистер Подиум
    """
    contest = models.ManyToManyField(Contest, verbose_name=u'Конкурс')
    # ... иные поля модели

    def get_contest_names(self):
        contest_list = self.contest.get_query_set()
        # Если мы ведем разработку на своем ПК, то значение отобразиться в консоли,
        # когда вы обратитесь к странице
        print contest_list



2. Выражение assert False, myvar более универсально, т.к. значение переменной выводится прямо в браузере:
class Winner(models.Model):
    """
    Победитель конкурса - Мисс / Мистер Подиум
    """
    contest = models.ManyToManyField(Contest, verbose_name=u'Конкурс')
    # ... иные поля модели

    def get_contest_names(self):
        contest_list = self.contest.get_query_set()
        # Возникнет ошибка, значение переменной contest_list отобразится в браузере
        assert False, contest_list

В этом случае вы увидите значение переменной в браузере:

Комментариев нет:

Отправить комментарий