это возможно по умолчанию, выполнив следующие шаги, убедитесь, что вы добавили контекст «django.contrib.auth.context_processors.auth» в свои настройки. По умолчанию он добавлен в settings.py, поэтому он выглядит следующим образом
TEMPLATE_CONTEXT_PROCESSORS = (
'django.core.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.auth',)
И вы можете получить доступ к объекту пользователя, например,
{% if user.is_authenticated %}
Welcome, {{ user.username }}. Thanks for logging in.
{% else %}
Welcome, new user. Please log in.
{% endif %}
Для получения дополнительной информации см. Здесь http://docs.djangoproject.com/en/1.2/topics/auth/#authentication-data-in-templates
Для вашего второго примера вы уже сами дали объяснение --- Очередь
- это модуль, который нельзя вызвать.
Для третьего примера: я предполагаю что вы используете Queue.Queue
вместе с multiprocessing
. Queue.Queue
не будет совместно использоваться между процессами. Если Queue.Queue
объявлен перед процессами, то каждый процесс получит его копию, которая будет независимой от всех остальных процессов. Элементы, помещенные в Queue.Queue
родителем перед запуском дочерних элементов, будут доступны каждому дочернему элементу. Элементы, помещенные в Queue.Queue
родителем после запуска дочернего элемента, будут доступны только родительскому элементу. Очередь. Очередь
создается для обмена данными между разными потоками внутри одного процесса (с использованием модуля threading ). Многопроцессорные очереди предназначены для обмена данными между различными процессами Python . Хотя API выглядит похожим (он разработан таким образом), лежащие в его основе механизмы принципиально отличаются.
многопроцессорные
очереди обмениваются данными, собирая (сериализуя) объекты и отправляя их по каналам. Queue.Queue
использует структуру данных, которая совместно используется потоками и блокировками / мьютексами для правильного поведения.