У меня есть шаблон, который состоит из кнопки. Если вошедший в систему пользователь нажимает на него, он должен сгенерировать время и сохранить его в модели, а затем извлечь это время в шаблоне. Тем не менее, это не выполняется, как ожидалось. Вот что я сделал:
models.py:
class Mytime(models.Model):
pid= models.ForeignKey(User, on_delete = models.CASCADE)
time = models.DateTimeField()
views.py:
def generate_time(request):
if request.method == 'GET':
current_time = timezone.now()
user_id = User.objects.get(username=request.GET.get('username')).pk
if (Mytime.objects.filter(id__exact=user_id, time=current_time) in (None, '')):
time = Mytime.objects.create(time=current_time)
else:
pass
data = Mytime.objects.values_list('time', flat=True)
return HttpResponse(data) #return time to the template.
interface.html:
{% block content %}
<div class="content-section">
<button type="button" class="btn btn-outline-info" id ='get_time'> Click me </button>
<h4 id='insert_time'></h4> //should display the time here from model
</div>
{% endblock content %}
JS AJAX-код в шаблоне интерфейса:
<script type="text/javascript">
$('#punchin').click(function () {
username = localStorage.getItem('username');
console.log(username)
$.ajax({
cache: false,
url: {% url 'generate_time' %},
type: 'GET',
data: {username: username},
success: function(data) {
$("#insert_time").html(data.value);
}
});
});
</script>
Однако во время выполнения времяне генерируется. Вызов AJAX работает, но условие if / else не выполняется. Как мне это сделать? Что-то не так с моей функцией views.py?