#django #django-rest-framework
Вопрос:
У меня есть 3 модели: User, Room, Join. Я пытаюсь получить список комнат, к которым присоединился пользователь, но я не знаю как.
# models.py
class User(models.Model):
full_name = models.CharField(max_length=40)
class Room(models.Model):
room_name = models.CharField(max_length=40)
create_by = models.ForeignKey(User, on_delete=models.CASCADE)
class Join(models.Model):
room = models.ForeignKey(Room, on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE)
Я пытался использовать related_name и related_query_name, но, к сожалению, я не знаю, как это работает. Если мой вопрос дублируется, пожалуйста, предоставьте мне несколько ключевых слов, заранее благодарю вас.
Ответ №1:
Вы можете получить Room
s, для которых Join
myuser
существует a с помощью:
Room.objects.filter(join__user=myuser)
Если возможно, что одно и то же User
присоединилось к одному и тому же Room
несколько раз, вы можете работать с:
Room.objects.filter(join__user=myuser).distinct()
Комментарии:
1. Могу ли я получить ссылку на документацию об этом «join__user»? Большое вам спасибо!
2. @HaloNewWorld: смотрите раздел Создание запросов , в котором пошагово объясняется, как определять запросы.