Django: Каков порядок стеков в Django? - PullRequest
2 голосов
/ 29 января 2010

Я думаю, что это правильный вопрос. Мне интересно, какие части кода выполняются первыми, вторыми и т. Д.

Мое предположение будет, но я не знаю:

  1. Запрос
  2. Middleware
  3. View
  4. Модель
  5. Middleware
  6. Ответ

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

Ответы [ 3 ]

4 голосов
/ 29 января 2010

Чтобы ответить на ваш уточняющий комментарий - Вы не можете попасть туда отсюда.

models.py - это просто файл, в который вы помещаете классовые модели, которые являются просто классами, доступ к которым осуществляется повсеместно. Если объект request не передан функции, с которой вы работаете, то он не существует и request.user нет. Модели можно использовать из любого места, а не только из контекста, где есть request.

Если вам нужно работать с объектом запроса, то передайте его в качестве параметра. И если это не имеет смысла, значит, вы используете свою модель неправильно.

1 голос
/ 29 января 2010

Я думаю, что это больше похоже на:

  1. Запрос
  2. Middleware (URL mapper)
  3. Посмотреть
    1. Модель (если запрашивается представлением)
    2. Шаблон (если запрашивается представлением)
  4. Промежуточное программное обеспечение (ответный вывод)
1 голос
/ 29 января 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...