Django — Пользователь. DoesNotExist не существует?

Эти сегменты никогда не возвращаются к LOW.

Вам понадобится что-то вроде:

int fontArray[][7] = { 

  // pins: {13, 12, 11, 10, 9, 8, 7},  // 8

  {1, 1, 1, 1, 1, 1, 0}, // 0
  {0, 1, 1, 0, 0, 0, 0}, // 1
  // ...
};

И затем используйте:

void sevenSegment(int a) {
  for (int i = 0; i < 7; i++) {
    digitalWrite(13 - i, fontArray[a][i]);
  }
}

В случае, если пинн-номера не являются смежными, можно использовать второй массив следующим образом: [ 117]

int pinArray[] = {13, 12, 11, 10, 9, 8, 7};

void sevenSegment(int a) {
  for (int i = 0; i < 7; i++) {
    digitalWrite(pinArray[i], fontArray[a][i]);
  }
}
32
задан GDorn 29 March 2011 в 21:29
поделиться

7 ответов

Проблема действительно в PyDev, а не в вашем коде. То, что вы сделали, абсолютно правильно, но IDE всегда будут испытывать трудности с разрешением атрибутов на динамическом языке, таком как Python. В случае исключения DoesNotExist оно добавляется через __ метакласс __ , а не через обычное наследование объектов, поэтому PyDev вряд ли сможет его найти. Однако это определенно должно сработать.

23
ответ дан 27 November 2019 в 20:42
поделиться

В Pydev есть обходной путь для таких случаев (когда члены определены во время выполнения). Просто добавьте # @ UndefinedVariable в конец строки, которая вызывает предупреждение (или ctrl + 1 на клавиатуре, когда курсор находится на «DoesNotExist»), и он не будет жаловаться.

7
ответ дан 27 November 2019 в 20:42
поделиться

Eclipse жалуется, что User.DoesNotExist не определен.

Что вы имеете в виду? У вас есть ошибка Python и трассировка стека? Этот код должен работать (как в документации ). Похоже на проблему с затмением. Просто запустите сервер разработки и посмотрите, работает он или нет:

manage.py runserver
0
ответ дан 27 November 2019 в 20:42
поделиться

Может ли Eclipse разрешать атрибуты, созданные во время выполнения, через __ метакласс __ es?

Обратите внимание, что вы никогда не определяете DoesNotExist ни для одной из ваших моделей, и это также не определено в django.db.models.base.Model .

2
ответ дан 27 November 2019 в 20:42
поделиться

Я только что обнаружил, что Pydev действительно имеет хороший способ решения этой проблемы.

Перейдите в Окно > Настройки , затем Pydev > Редактор > Анализ кода .

Щелкните вкладку Не определено и добавьте «DoesNotExist» в текстовое поле с названием . Считайте следующие имена глобальными .

20
ответ дан 27 November 2019 в 20:42
поделиться

Можно решить эту проблему и другим способом: просто перейдите к классу User и добавьте @DynamicAttrs в docstring.
Это сообщит PyDev, что атрибуты класса добавляются динамически, и заставит его больше не жаловаться на "проблемы" вроде DoesNotExist.

2
ответ дан 27 November 2019 в 20:42
поделиться

У меня такая же проблема на Ubuntu в VirtualEnv, чтобы решить проблему я использовал эти сниппеты.

http://djangosnippets.org/snippets/191/#c3091

В parituclar он сделал пользовательские поля User Fields с кодом:

class UserField(forms.CharField):
    def clean(self, value):
        super(UserField, self).clean(value)
        try:
            User.objects.get(username=value)
            raise forms.ValidationError("Someone is already using this username. Please pick an other.")
        except User.DoesNotExist:
            return value
1
ответ дан 27 November 2019 в 20:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: