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

383
Visualizações
Cómo obtener objetos modelo usando otros modelos en django

Necesito que si el usuario solicita obtener la siguiente página, la respuesta de la solicitud sería la página que contiene publicaciones específicas realizadas por los usuarios seguidos por el usuario que solicita. Pensé en hacer algunas acciones para hacer esto:

  1. Obtener el solicitante
  2. Obtener los usuarios que son seguidos por el solicitante
  3. Obtenga las publicaciones creadas por los usuarios que están siendo seguidos

En mis modelos.py:

 class User(AbstractUser): image_url = models.CharField(max_length=5000, null=True) class Follow(models.Model): follower = models.ForeignKey( User, on_delete=models.PROTECT, related_name="follower") following = models.ForeignKey( User, on_delete=models.PROTECT, related_name='following') class Post(models.Model): content = models.CharField(max_length=140) date_created = models.DateTimeField(auto_now_add=True) poster = models.ForeignKey(User, on_delete=models.CASCADE)

En mis vistas.py:

 def following_page(request, username): user = User.objects.get(username=username) f = user.following.all() posts = Post.objects.filter(poster=f.following) posts = posts.order_by("-date_created").all() return render(request, 'network/index.html', { "posts": posts })

Dice

El objeto AttributeError 'QuerySet' no tiene atributo 'siguiente'

¿Debería cambiar el modelo? ¿Como resolver el problema?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Puedes filtrar con:

 from django.contrib.auth.decorators import login_required @login_required def following_page(request): posts = Post.objects.filter( poster__following__follower=request.user ) return render(request, 'network/index.html', { 'posts': posts })

Dado que usa el usuario que inició sesión, uno usa request.user y, por lo tanto, no tiene sentido que la vista acepte un nombre de usuario.


Nota : puede limitar las vistas a una vista para usuarios autenticados con el decorador @login_required [Django-doc] .


Nota : normalmente es mejor hacer uso de la settings.AUTH_USER_MODEL [Django-doc] para referirse al modelo de usuario, que usar el modelo User [Django-doc] directamente. Para obtener más información, puede consultar la referencia a la sección Modelo de User de la documentación .

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