Попытка обновить модель, в зависимости от того, какая ссылка для скачивания была нажата в Django.
Пожалуйста, ознакомьтесь с текущим кодом ниже, поэтому справедливо, что он также не регистрируется в консоли.
Из профиля. html
{% for x in source %}
{% if forloop.counter <= 4 %}
<div class="content-section">
<div class="media-body">
<h2 class="account-heading">{{ x.video_id }}</h2>
{% for y in records %}
{% if x.video_id == y.sourcevideo.video_id %}
<div class="media-body">
<video width="320" height="240" controls>
<source src="{{ y.highlight.url }}" type="video/mp4">
Your browser does not support the video tag
</video>
<br>
<a class="btn" id="download" href="{{ y.highlight.url }}" data-id="{{ y.highlight_id }}" download>Download</a>
</div>
{% endif %}
{% endfor %}
</div>
</div>
{% endif %}
{% endfor %}
<script type="text/javascript">
$("#download").click(function() {
console.log( $(this).attr("data-id") );
var catid;
catid = $(this).attr("data-id");
$.ajax({
type:"POST",
url: "/downloaded",
data: {
highlight_id: catid
},
success: function( data ) {
console.log(data)
}
})
})
</script>
Из views.py
def downloaded(request):
if request.method == 'POST':
highlight_id = request.GET('highlight_id')
downloadedvideo = Highlight.objects.get(pk=highlight_id)
downloadedvideo.used = True
downloadedvideo.save()
return
else:
return
urls.py
urlpatterns = [
path('', UploadVideo.as_view(), name='upload'),
path(r'^downloaded/$', views.downloaded, name='downloaded'),
]
Любая помощь приветствуется!
Обновленный профиль. html Это обновленный профиль, следуя инструкциям, приведенным здесь: JQuery: Выполнить публикацию до перехода по ссылке
{% if forloop.counter <= 4 %}
<div class="content-section">
<div class="media-body">
<h2 class="account-heading">{{ x.video_id }}</h2>
{% for y in records %}
{% if x.video_id == y.sourcevideo.video_id %}
<div class="media-body">
<video width="320" height="240" controls>
<source src="{{ y.highlight.url }}" type="video/mp4">
Your browser does not support the video tag
</video>
<br>
<a class="btn" class="download" href="{{ y.highlight.url }}" data-id="{{ y.highlight_id }}" download>Download</a>
</div>
{% endif %}
{% endfor %}
</div>
</div>
{% endif %}
{% endfor %}
<script type="text/javascript">
$(".download").click(function(ev) {
var self = this;
$post.('/downloaded', function() {
window.location.href = self.href;
});
return false;
});
Из Models.py
from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User
class Highlight(models.Model): #record of each HIGHLIGHT video, derived from a SOURCE video
highlight_id = models.AutoField(primary_key = True)
creator = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)
game = models.ForeignKey(Game, null=True, on_delete=models.SET_NULL)
date_created = models.DateTimeField(default=timezone.now)
sourcevideo = models.ForeignKey(Video, null=True, on_delete=models.SET_NULL)
highlight = models.FileField(upload_to = 'highlights/')
max_energy = models.IntegerField()
average_energy = models.IntegerField()
highlight_length = models.IntegerField()
quality = models.IntegerField(null=True)
used = models.BooleanField(default=False)
def __str__(self):
return self.title