Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

265
Vistas
Django, ¿cómo hacerlo en la plantilla?

Necesito una pantalla como esta:

 {% if user_rate %} <h2><a href="/games/{{game.id}}/{{game.slug}}/add_rate/edit/{{rate.id}}/">Edit rate</a></h2> {% else %} <h2><a href="/games/{{game.id}}/{{game.slug}}/add_rate">Add rate</a></h2> {% endif %}

pero cuando usé (Si califico el primer juego) user_rate = Rate.objects.filter(user=request.user) Me muestra "Editar" en el juego sin tasa. objects.get() dame: "get() devolvió más de una tasa, ¡devolvió 2!"

y quiero mostrar

 {% for x in user_rate %} Your rate : {{x.rate}} {% endfor %}

pero esto también muestra la tasa de usuario de todos los juegos. Tengo la misma estructura en comentarios y funciona, solo veo mis comentarios de este juego, pero no se porque no funciona con rate del juego...

 class Rate(models.Model): game = models.ForeignKey(Games) user = models.ForeignKey(User) rate = models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(10)]) class Meta: unique_together = ['game', 'user']

vistas.py

 def game(request, game_id, slug): game = Games.objects.get(id = game_id) genre = game.genres.all() platform = game.platforms.all() quantity = Games.objects.all().count() user = User.objects.all().count() number_of_rates = Rate.objects.filter(game_id = game_id).count() rate_average = Rate.objects.filter(game_id = game_id).aggregate(Avg("rate")).values()[0] if request.user.is_authenticated(): user_rate = Rate.objects.filter(user=request.user) ctx = {'game' : game, 'genre' : genre, 'platform' : platform, 'quantity' :quantity, \ 'user' : user, 'rate_average' : rate_average, 'user_rate': user_rate, \ 'number_of_rates' : number_of_rates} return render(request, 'game.html', ctx) else: ctx = {'game' : game, 'genre' : genre, 'platform' : platform, 'quantity' :quantity, \ 'user' : user, 'rate_average' : rate_average, 'number_of_rates' : number_of_rates} return render(request, 'game.html', ctx)
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

# Something along the lines of this. rate = Rate.objects.get(user=request.user) context = {...., "user": request.user, "rate": rate} return render(request, 'template.html', context=context)

En tu plantilla:

 {% if rate %} <h2><a href="/games/{{game.id}}/{{game.slug}}/add_rate/edit/{{rate.id}}/">Edit rate</a></h2> {% else %} <h2><a href="/games/{{game.id}}/{{game.slug}}/add_rate">Add rate</a></h2> {% endif %}
over 4 years ago · Santiago Trujillo Denunciar

0

Bien, lo tengo. Soy estúpido. Tal vez alguien algún día lo use.

Así que solo necesitaba

 Rate.objects.filter(user = request.user, game_id = game_id)

Fue fácil, y tuve muchos problemas con eso.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda