Как использовать значение из запроса в другом запросе в django

В моем представлении есть следующий код:

# default group view for group admins
def adminGroupView(request):
    # get group id => group data and messages
    group_id = GroupUser.objects.get(username_id=request.user.id)
    groupdata = Group.objects.get(group_id=group_id)
    groupmessages =  MessageBoard.objects.filter(group_id=group_id)
    groupmembers = GroupUser.objects.filter(group_id=group_id)
    form = SendMessageForm()
    context = {
        "groupdata":groupdata,
        "groupmessages":groupmessages,
        "groupmembers":groupmembers,
        "form":form
    }
    return render(request, 'base/group-admin.html', context)

Я продолжаю получать ошибку типа

TypeError at /group/ Поле 'group_id' ожидало число, но получило <GroupUser: 9>.

Когда я заменяю group_id на число, код работает нормально. Как мне использовать значение из другого запроса.

модель

class Group(models.Model):
    group_id = models.AutoField(primary_key=True)
    group_name = models.CharField(max_length=30)  
    date_created = models.DateField(auto_now_add=True)  
    created_by = models.CharField(max_length=30)  
    updated = models.DateField(auto_now=True)

    def __str__(self):
         return str(self.group_id)

class GroupUser(models.Model):
    group_id = models.ForeignKey('Group', on_delete=models.CASCADE)  
    username = models.ForeignKey(User, on_delete=models.CASCADE)  
    date_joined = models.DateTimeField(auto_now_add=True)  

    def __str__(self):
        return str(self.group_id)

Метод model.get() может вернуть только 1 объект, безопасно обращаться к атрибуту именно там. Если найдено 0 или более 1 объекта, этот метод выдаст ошибку. См. здесь

Поскольку ваше поле group_id является ссылкой (foreign key) на Group, вы можете просто получить группу, вызвав:

group = GroupUser.objects.get(username_id=request.user.id).group_id

В приведенном выше запросе вы получаете связанный объект типа Group. Чтобы получить конкретно group_id, вы можете сделать следующее:

group_id = GroupUser.objects.get(username_id=request.user.id).group_id.group_id
Вернуться на верх