我正在尝试创建一个链接,当您单击该链接时,它将为电影添加一票。 问题是,当我单击链接时,它会添加投票,但不会重定向到同一页面,并且显示此错误: / myapp2 / 10/1 /处的NoReverseMatch 反向查找“ detallesPelicula”,未找到任何参数。尝试了1个模式:['myapp2 /(?P [0-9] +)/ $']
Views.py
@csrf_exempt
def likesDislikesPelicula(request,peliculaid,votousuario):
if request.method =="POST":
eachpelicula= get_object_or_404(Pelicula, id=peliculaid)
obj= ''
valor = ''
try:
obj = Likes.objects.get(usuario= request.user, pelicula=eachpelicula)
valor= 0
valor= int(valor)
votousuario=int(votousuario)
if valor != votousuario:
obj.delete()
votop = Likes()
votop.usuario= request.user
votop.pelicula=eachpelicula
votop.voto = votousuario
if votousuario ==1 and valor !=1:
eachpelicula.likes +=1
# eachpelicula.dislikes -=1
elif votousuario== -1 and valor !=-1:
eachpelicula.dislikes +=1
# eachpelicula.likes -=1
votop.save()
eachpelicula.save()
context={'peliculaid': peliculaid,'votousuario':votousuario}
# return redirect('detallesPelicula')
elif valor == votousuario:
obj.delete()
if votousuario ==1:
eachpelicula.likes -=1
elif votousuario== -1:
eachpelicula.dislikes -=1
eachpelicula.save()
context={'peliculaid': peliculaid,'votousuario':votousuario}
# return render(request,'detallesPelicula.html',context)
except Likes.DoesNotExist:
votop = Likes()
votop.usuario= request.user
votop.pelicula=eachpelicula
votop.voto = votousuario
votousuario=int(votousuario)
if votousuario ==1:
eachpelicula.likes +=1
elif votousuario== -1:
eachpelicula.dislikes +=1
votop.save()
eachpelicula.save()
context={'peliculaid': peliculaid,'votousuario':votousuario}
# return render(request,'detallesPelicula.html',context)
else:
eachpelicula= get_object_or_404(Pelicula, id=peliculaid)
context={'peliculaid': peliculaid,'votousuario':votousuario}
#return render(request,'detallesPelicula.html',上下文) 返回重定向('detallesPelicula')
urls.py
from django.urls import path
from django.conf.urls import url
from . import views
urlpatterns = [
path('<int:peliculaid>/<int:votousuario>/', views.likesDislikesPelicula,
name='likesDislikesPelicula'), #Path del submit
]
models.py
class Pelicula(models.Model):
titulo = models.CharField(max_length=50)
descripcion = models.CharField(max_length=100)
fecha_estreno = models.DateField('fecha de estreno')
urlPortada = models.URLField(max_length=1000, default="")
trailer = models.URLField(max_length=1000, default="")
urlPagina = models.URLField(max_length=1000, default="")
nota = models.CharField(max_length=5, default=0)
genero = models.ForeignKey(Genero, on_delete=models.CASCADE)
director = models.ForeignKey(Director, on_delete=models.CASCADE)
likes = models.IntegerField(default=0)
actor = models.ManyToManyField(Actor)
fecha = models.DateField('fecha')
def __str__(self):
return self.titulo
{% extends "base.html" %}
{% load staticfiles %}
{% load i18n %}
{% block titulo %} Dettalles de la Pelicula {% endblock %}
{%block menu%}
<li><a href="{% url 'index'%}">{% trans "Inicio" %}</a></li>
<li class="current"><a href="{% url 'getPeliculas' %}">{% trans "Peliculas" %}</a></li>
<li><a href="{% url 'getActores'%}">{% trans "Actores" %}</a></li>
<li><a href="{% url 'getDirectores'%}">{% trans "Directores" %}</a></li>
<li><a href="{% url 'getProximas'%}">{% trans "Proximamente" %}</a></li>
<li></li>
{% endblock %}
{% block contenido %}
<ul>
<h3><img src={{pelicula.urlPortada}} width="600" height="600"/></h3>
<h1>{{pelicula.titulo}}</h1>
<li></li>
<h3>{% trans "Fecha de estreno:" %} {{pelicula.fecha_estreno}}</h3>
<li></li>
<li></li>
<h2>{% trans "Descripcion:" %}</h2>
<h3>{{pelicula.descripcion}}</h3>
<li></li>
<li></li>
<li></li>
<li></li>
<iframe width="560" height="315" src="{{ pelicula.trailer }}?rel=0" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<li></li>
<li></li>
<li></li>
<li></li>
<h2>{% trans "Actores:" %}</h2>
{% for a in pelicula.actor.all %}
<a href="{% url 'detallesActor' a.id %}"><h3>{{a.nombre}}</h3></a></li>
{% endfor %}
<li></li>
<li></li>
<h2>{% trans "Director:" %}</h2>
<a href="{% url 'detallesDirector' pelicula.director.id %}"><h3> {{pelicula.director.nombre}}</h3></a>
<li></li>
<li></li>
</ul>
<!-- LikeBtn.com BEGIN -->
<!-- <span class="likebtn-wrapper" data-identifier="item_1"></span>
<script>
(function(d,e,s){if(d.getElementById("likebtn_wjs"))
return;
a=d.createElement(e);
m=d.getElementsByTagName(e)[0];
a.async=1;
a.id="likebtn_wjs";
a.src=s;m.parentNode.insertBefore(a, m)})
(document,"script","//w.likebtn.com/js/w/widget.js");
</script> -->
<!-- LikeBtn.com END -->
<a href="/myapp2/{{pelicula.id}}/1/" onClick="document.getElementById('likebutton').submit()">Me gusta:</a> {{pelicula.likes}} usuarios han votado que les gusta.
<form id="likebutton" method="POST" action="/myapp2/{{pelicula.id}}/1/">
{% csrf_token %}
<input type="hidden">
</form>
{% endblock %}
form of html
<!-- begin snippet: js hide: false console: true babel: false -->