Я пишу промежуточное программное обеспечение для отслеживания активности пользователей путем записи его в файл;страницы, которые он посетил, кнопки нажимали и так далее и тому подобное.Чтобы проверить мое промежуточное программное обеспечение, я просто пишу сообщение в файл.Но по какой-то причине сообщение записывается дважды в файл.И я на django 1.11
Вот мое промежуточное ПО:
from django.http import HttpResponse
import datetime
class TodoappMiddleware(object):
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
f = open("--my file path--", 'a')
date_and_time = datetime.datetime.now()
f.write('\n')
f.write(str(date_and_time))
f.write('\tMiddleware successfully executed\n')
f.close()
response = self.get_response(request)
return response
РЕДАКТИРОВАТЬ: Должен знать, что перенаправление заставляет промежуточное ПО выполняться дважды,Вот мои представления, которые используют HttpResponseRedirect
def login_user(request):
if request.method == 'POST':
login_form = Login(request.POST)
if login_form.is_valid():
email = login_form.cleaned_data['email']
password = login_form.cleaned_data['password']
User.objects.get(email=email)
user = authenticate(email=email, password=password)
if user is not None:
if user.is_active:
login(request, user)
return HttpResponseRedirect(reverse('dashboard'))
else:
return HttpResponse("<h2>Waiting for admin to authenticate you</h2>")
else:
return render(request, 'registration/login.html', {'errors': login_form.errors})
return render(request, 'registration/login.html', {'form': Login()})
@login_required
def logout_user(request):
logout(request)
return redirect('login_user')
Какие изменения мне нужно сделать, чтобы промежуточное программное обеспечение выполнялось только один раз?