Вызов представления 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()