Как объединить набор запросов через ManyToManyField в Django - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь создать клон Instagram.Мне нужно передать сообщения пользователя и подписаться на его панель управления.

На панель инструментов поступают сообщения, владельцем которых является запрашивающий пользователь.

Я хочу объединить сообщения, написанные пользователем, который его запросил.с сообщениями других пользователей, за которыми следил пользователь для заказа сообщений.

Но я не знаю, как

Я не уверен, что вы понимаете, о чем я.Извините за мой английский.

Например.

Пользователь1 имеет сообщения

(title='First', created_at='19-01-01', author='user1')
(title='Third', created_at='19-01-03', author='user1')

Пользователь2 имеет сообщение

(title='Second' created_at='19-01-02', author='user2')

и пользователь1 следует за пользователем2.

А потом, если пользователь1 получит доступ к своей панели.На панели инструментов отображаются следующие сообщения:

(title='First', created_at='19-01-01', author='user1')
(title='Second' created_at='19-01-02', author='user2')
(title='Third', created_at='19-01-03', author='user1')

models.py

class Insta(models.Model):
    title = models.CharField(max_length=255)
    body = models.TextField()
    image = models.ImageField(upload_to='images/', blank=True)
    video = models.FileField(upload_to='videos/', blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    likes = models.ManyToManyField(User, related_name='likes', blank=True, default='')
    owner = models.ForeignKey(User, on_delete=models.CASCADE)

class User(AbstractBaseUser, PermissionsMixin):
    username = models.CharField(max_length=100, unique=True)
    user_fullname = models.CharField(max_length=255)
    is_active = models.BooleanField(default=True)
    is_superuser = models.BooleanField(default=False)
    thumbnail = models.ImageField(upload_to='thumbnail/')
    follows = models.ManyToManyField('self', related_name='followers', symmetrical=False)

views.py

 def list(self, request, *args, **kwargs):
        if not request.user.is_authenticated:
            return redirect('insta:signup')
        else:
            user = request.user
            response = Insta.objects.filter(owner=user.id)
            return Response({'posts': response, 'user': user})

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...