Как отправить переменные из view.py в сигнал в Django
я хочу, чтобы django создавал объект ServerModeratorPermission
сразу после того, как пользователь был назначен модератором сервера
views.py:
class ModeratorSettingsView(LoginRequiredMixin, View):
form_class = AddModeratorForm
...
def post(self, request, server_tag):
form = self.form_class(request.POST)
user = User.objects.get(pk=request.POST.get('user'))
server = Server.objects.get(tag=server_tag)
moderators = server.moderator_of.exclude(user=server.creator)
ServerModerator.objects.get_or_create(user=user)
moderator = ServerModerator.objects.get(user=user)
moderator.server.add(server)
return render(request, 'servers/moderator-settings.html', {'moderators':moderators, 'server':server, 'form':form})
signals.py:
@receiver(post_save, sender=ServerModerator)
def give_default_permission(instance, *args, **kwargs):
# i need server_tag for this query
# server = Server.objects.get(tag=server_tag)
moderator = ServerModerator.objects.get(pk=instance.id)
ServerModeratorPermission.objects.create(moderator=moderator, server=server)
есть ли способ отправить в сигнал server_tag
, который используется в классе представления?
Если server_tag
является полем, попробуйте server = Server.objects.get(tag=instance.server_tag)