Встречается на собеседованиях • сегодня
Как сделаешь механизм подписки одних пользователей на других
Для реализации подписки пользователей друг на друга можно использовать отношение "многие ко многим" через промежуточную таблицу. Вот пример на Django:
python
from django.db import models
from django.contrib.auth.models import User
class Subscription(models.Model):
subscriber = models.ForeignKey(
User,
related_name='subscriptions',
on_delete=models.CASCADE
)
target_user = models.ForeignKey(
User,
related_name='subscribers',
on_delete=models.CASCADE
)
created_at = models.DateTimeField(auto_now_add=True)
text
class Meta:
unique_together = ('subscriber', 'target_user')text
Основные моменты:
1. Храним кто на кого подписан в отдельной таблице
2. Добавляем created_at для отслеживания времени подписки
3. Уникальный индекс на пару (подписчик, целевой пользователь)
4. Используем related_name для удобного доступа из модели User
Пример использования:
```python
# Подписаться
Subscription.objects.create(
subscriber=request.user,
target_user=target_user
)
# Отписаться
Subscription.objects.filter(
subscriber=request.user,
target_user=target_user
).delete()
# Получить подписчиков
user.subscribers.all()
# Получить подписки
user.subscriptions.all()
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы