![](/img/trans.png)
[英]Pyinstaller + Django = No module named 'django.core.context_processors'
[英]No module named 'django.core.context_processors' django template
我試圖制作一個模板標簽來獲取登錄用戶request.user
,我試過這個
在 settings.py
'context_processors': [
'django.core.context_processors.request',
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
這是我的模板標簽
from django import template
register = template.Library()
@register.simple_tag
def is_member(context):
request = context['request'].user
if request.user in request.user.model_name.admins.all:
return True
else:
return False
我必須確定登錄用戶是否是管理員(M2M)字段中的成員之一,但我收到此錯誤
沒有名為“django.core.context_processors”的模塊
當我嘗試在 settings.py 文件中刪除這一行'django.core.context_processors.request'
時,我收到了這個錯誤
“is_member”沒有收到參數的值:“上下文”
更新 - 模板
{% load my_tags %} {% if is_member %} <a class="nav-link" href="{% url 'listings:new_post' %}"> <i class="fas fa-user-plus"></i>create new post </a> {% else %} <a class="nav-link" href="{% url 'login'%} <i class="fas fa-user-plus"></i>Login</a> {% endif %}
任何建議我都會感激不盡,藝術
django.core.context_processors
內置模板上下文處理器已移至django.template.context_processors
現在您的模板選項應如下所示:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
os.path.join(BASE_DIR, 'templates'),
],
'APP_DIRS': True,
'OPTIONS': {
'debug': DEBUG,
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
還要在簡單標簽中使用context
添加takes_context=True
@register.simple_tag(takes_context=True, format_string)
def is_member(context):
....
在您的模板中:
{% is_member as user_is_member %}
{% if user_is_member %}
...
{% else %}
...
{% endif %}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.