Вы используете переменную контекста user_membership
для вашего Customer
объекта. Это означает, что вы должны использовать это имя при поиске объекта Customer
в вашем шаблоне. Например:
{% if request.user != user_membership.user %}
Кроме того, вы также должны убедиться, что у вас в settings.py
установлен *1009* обработчик контекста запроса Django , который позволяет вам использовать request
объект в вашем шаблоне:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'APP_DIRS': True,
'OPTIONS': {
'context_processors': (
'django.template.context_processors.request',
),
}
},
]
Обновление
Если нет записи Customer
, настроенной для текущего вошедшего в систему пользователя, то код в настоящее время вернет браузер 404. Однако, если вы хотите продолжить визуализацию шаблона в этом случае, вам следует изменить представление так, чтобы для переменной user_membership
было установлено значение None:
def BookDetail(request, id):
most_recent = Book.objects.order_by('-timestamp')[:3]
try:
user_membership = Customer.objects.get(user=request.user)
except Customer.DoesNotExist:
user_membership = None
А затем измените ваш шаблон, чтобы проверить, установлен ли user_membership
:
{% if user_membership and user_membership.user == request.user %}
{% for content in book.pages %}
<a href="{{ content.get_absolute_url }}" class="site-btn">Read</a>
{% endfor %}
{% else %}
<button class="site-btn" disabled="disabled">Read</button>
{% endif %}