Я создаю приложение для викторины, используя JavaScript и Django. Фактически весь лог c был сделан в JavaScript. Для приложения викторины у меня есть переменная оценки, значение которой отображается в указателе. html, как показано ниже:
resultCont.innerHTML = 'Your Score:- ' + score + '/80' ;
Здесь оценка - это переменная JavaScript.
Еще мне нужно сохранить эту переменную оценки в моей БД. Так что мне нужно использовать ajax для публикации переменной оценки в моем файле views.py, где работает моя функция, чтобы отправить оценку вместе с именем пользователя в модели Django.
модели .py:
class Results(models.Model):
username = models.CharField(max_length=50,default='')
score = models.IntegerField()
def __str__(self):
return self.username
Здесь я взял имя пользователя и переменную оценки. И имя пользователя - это внешний ключ.
views.py
def score(request):
if request.method == 'GET':
return render(request, 'quiz/html/end.html',{'form':Score()})
else:
try:
form = Score(data=request.POST)
newscore = form.save(commit=False)
newscore.owner = request.user
newscore.save()
return redirect('category')
except ValueError:
return render(request, 'quiz/html/end.html',{'form':Score(), 'error' :'please fill the form properly'})
end. html: Здесь я использовал форму отправить партитуру вместе с именем. Я скрыл имя пользователя, чтобы пользователь не мог его изменить.
<form method="POST">
{% csrf_token %}
<div>
<p style="display:none;">
<label for="id_username">Username:</label>
<input type="text" name="username" value={{user.username}} placeholder="{{user.username}}" maxlength="50" required="" id="id_username">
</p>
<p>
<label for="id_score">Score:</label>
<input type="number" name="score" placeholder ='' value='I want the score value here from javascsript' required="" id="id_score">
</p>
</div>
<button type="submit">Submit</button>
</form>
Я написал запрос на публикацию ajax, но попытался показать счет в том же индексе. html. Он отображается, но я хочу получить это значение в конце. html. Можно ли вывести балл index. html (сохранение балла в #result) в конец. html (где балл нужно сохранить)
function scoresubmit(){
$.ajax({
url: '/',
method : 'POST',
// data: {score: $('#score').val(), "csrfmiddlewaretoken" : "{{csrf_token}}"},
success: function() {
$('#name').html(score);
}
});
}
index. html: (отсюда)
resultCont.innerHTML = 'Your Score:- ' + score + '/80' ;
конец. html :( сюда)
<input type="number" name="score" placeholder ='' value='I want the score value here from javascsript' required="" id="id_score">
URL. py:
path('home', views.home,name = "home"),
path('main',views.main, name='main'),
path('', views.score, name = "score"),
path('profile/',views.profile, name = "profile"),
path('category/',views.category, name = "category"),
Единственное, что я хочу здесь, это сохранить счет вместе с именем пользователя в моей БД (Django).
Что неправильно в моем коде ajax. Как передать значение от одного к другому html с помощью ajax почтового запроса?