Вызов представления DRF из другого представления

У меня есть набор представлений модели User, который добавляет пользователей в мое приложение Django Rest Framework (VueJS -> DRF -> PostGres).

У меня есть еще один ModelViewSet для журнала активности, в котором есть записи, когда пользователи получают кредиты за прохождение обучения и т.д.

Я столкнулся с проблемой, когда понял, что пользователь, который ничего не сделал, искажает метрики. Для борьбы с этим я просто хочу вставить Activity в ActivityLog при создании пользователя.

Как я могу вызвать ModelViewSet для публикации новой активности из сообщения нового пользователя?

Я прочитал несколько вопросов, которые показались похожими, но я не понимаю достаточно хорошо, чтобы перевести на мою проблему. Я просто хочу взять ID, созданный при создании нового пользователя, и передать его вместе с некоторыми данными в ActivityLogViewset.

Если я переопределю perform_create() в UserViewset, как мне вызвать и передать данные в другую конечную точку?

Спасибо.

BCBB

OK, я думаю, у меня туннельное зрение (снова). Я сделал это сложнее, чем должно было быть. Я просто отменил perform_create, импортировал модель ActivityLog и создал ее экземпляр так, как мне было нужно. Кажется, это намного проще, чем создавать новый запрос & вызывать конечную точку.

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all().order_by('last_name')
    serializer_class = UserSerializer

    def perform_create(self, serializer):
        super().perform_create(serializer)
        user = serializer.instance
        act_cat = ActivityCategory(pk=1)
        act_desc = "You joined!"
        act = ActivityLog(user=user, activity_category=act_cat, activity_description=act_desc)
        act.save()
Вернуться на верх