Набор запросов в django

Мне очень нужна помощь в этом вопросе: У меня есть 3 модели User, Item и Comment, где User является внешним ключом в Item, а Item является внешним ключом в Comment. Я хочу получить все комментарии, принадлежащие определенному пользователю в моем представлении, как мне этого добиться. Ниже приведена моя модель

 class User(models.Model):
        name= models.CharField(max_length=200,null=True)
        updated = models.DateTimeField(auto_now=True)
        created = models.DateTimeField(auto_now_add=True)
    
        def __str__(self):
            return self.name

 class Item(models.Model):
        user = models.ForeignKey(User, on_delete=CASCADE)
        name= models.CharField(max_length=200,null=True)
        updated = models.DateTimeField(auto_now=True)
        created = models.DateTimeField(auto_now_add=True)
    
        def __str__(self):
            return self.name

 class Comment(models.Model):
        user = models.ForeignKey(Item, on_delete=CASCADE)
        name= models.CharField(max_length=200,null=True)
        updated = models.DateTimeField(auto_now=True)
        created = models.DateTimeField(auto_now_add=True)
    
        def __str__(self):
            return self.name

ОБНОВЛЕНО 2

Вам следует рассмотреть возможность изменения модели, как сказал amadou-sow, это правильный способ делать такие вещи

ОБНОВЛЕНО

def get_user_comments(request):
    qs = Comment.objects.filter(user__user=request.user)

Вы можете получить доступ к связанным с вами объектам с помощью "__" (двойного _) подробнее читайте в официальных документах

И вам действительно следует переименовать поле "user" в "item" в модели Comment, если оно является внешним ключом к модели Item, вот так:

 class User(models.Model):
        name= models.CharField(max_length=200,null=True)
        updated = models.DateTimeField(auto_now=True)
        created = models.DateTimeField(auto_now_add=True)
    
        def __str__(self):
            return self.name

 class Item(models.Model):
        user = models.ForeignKey(User, on_delete=CASCADE)
        name= models.CharField(max_length=200,null=True)
        updated = models.DateTimeField(auto_now=True)
        created = models.DateTimeField(auto_now_add=True)
    
        def __str__(self):
            return self.name

 class Comment(models.Model):
        item = models.ForeignKey(Item, on_delete=CASCADE)
        name = models.CharField(max_length=200,null=True)
        updated = models.DateTimeField(auto_now=True)
        created = models.DateTimeField(auto_now_add=True)
    
        def __str__(self):
            return self.name

#view.py
def get_user_comments(request):
    return Comment.objects.filter(item__user=request.user)

существует проблема модели проектирования в вашем коде.
вот как вы можете это сделать.

 class Comment(models.Model):
        item = models.ForeignKey(Item, on_delete=CASCADE)  # the related item
        author = models.ForeignKey(User,on_delete=CASCADE) #new ( the author of the comment)
        updated = models.DateTimeField(auto_now=True)
        created = models.DateTimeField(auto_now_add=True)
    
        def __str__(self):
            return self.name

Теперь в вашем файле views.py вы можете сделать что-то вроде этого.

Comment.objects.filter(author=request.user) 
Вернуться на верх