Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

274
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda