Я создаю центр уведомлений, естественно он должен быть виден на всем сайте; Итак, вопрос в том, как мне это сделать. Создайте файл name.js
внутри папки static
, но кажется, что чего-то не хватает, так как кроме задержки в самом app
он не виден за его пределами.
view.py
@csrf_exempt
def NewsSubjects(request):
if request.is_ajax() == True:
queryset = Downloads.objects.all().order_by('register_date').values()[:5]
data=list(queryset)
return JsonResponse(data, safe=False)
urls.py
path('alerts/', views.NewsSubjects, name='alerts'),
/ static / js / notifications. js
$.ajax({
// initialize an AJAX request
url: "alerts",
// al estar en static no se usa el name del URL ('control:alert') sino el PATH (alerts/)
type: "GET",
datatype:'json',
success: function(data) {
console.log('cambio')
var opciones = document.getElementById("nuevasDisciplinas");
var countAlert = document.getElementById("countAlert");
var listaDisciplinas = ''
for (var i = 0; i < data.length; i++) {
// console.log(data[i]);
var nombDis = data[i].category_name
var fechaCreacion = data[i].register_date
// var d = new Intl.DateTimeFormat('en', { day: '2-digit' }).format(fechaCreacion)
// var m = new Intl.DateTimeFormat('en', { month: 'short' }).format(fechaCreacion)
// var a = new Intl.DateTimeFormat('en', { year: 'numeric' }).format(fechaCreacion)
var icon = '<divclass="mr-3"><divclass="icon-circle bg-primary"><iclass="fas fa-file-alt text-white"></i></div></div>'
var body ='<div><divclass="small text-gray-500">'+fechaCreacion+'</div><spanclass="font-weight-bold">'+nombDis+'</span></div>'
listaDisciplinas += icon+body
}
opciones.innerHTML = listaDisciplinas;
countAlert.innerHTML = data.length;
},
error: function() {
console.log("The information could not be obtained");
}
});
master. html
<script src="{% static 'js/notifications.js' %}"></script>
идея проста, принесите последние записи в соответствии с датой регистрации (лучшим вариантом будет дата входа в систему, но хорошо), это работает в приложении уведомлений, но не в остальном. Он возвращает сообщение, которое я помещаю в случае ошибки.
PS: если вы можете помочь мне с форматированием даты, это тоже будет хорошо