Как обрабатывать поле user в Django при выполнении Post-запроса к модели, доступ к которой осуществляется с помощью API-ключа?

models.py:

class Hosts (models.Model) :

    host_label = models.CharField (max_length=64,
                                  verbose_name = "Host Label"
                                  )
    host_activation_request = models.CharField (max_length = 400,
                                  verbose_name = 'Activation Request',
                                  blank=True, null=True)
    host_developer_email = models.CharField (max_length = 400,
                                  verbose_name = 'Developer Email',
                                  blank=True, null=True)
    class Meta:
        verbose_name = "Available Host"
        unique_together = [['host_label', 'host_developer_email']]

serializers.py:

class HostSerializer(serializers.ModelSerializer):

    class Meta:
        model = Hosts
        fields = ('host_label','host_activation_request')

views.py:

class CreateHost(CreateAPIView):
    serializer_class = HostSerializer

    def generate_activation_request(self, feature, customer_ref="Isode"):
        config = get_active_config() #this function has been imported at the top
        command_list =  [os.path.join(config.generate_activation_binary_directory, "generate_activation_request")]
        import subprocess
        proc = subprocess.run(command_list, universal_newlines=True, capture_output=True)
        self.result = proc.stdout

    def post(self, request, *args, **kwargs):
        print(request.data)
        self.generate_activation_request(feature=request.data["feature"])
        request.data['host_activation_request'] = self.result
        return self.create(request, *args, **kwargs)

Пользователь может войти на сайт и создать там Host, и поле host_developer_email будет его email, а два других поля будут тем, что он введет в форму, поскольку host_developer_email был установлен как скрытое поле.

Теперь я создал конечную точку под названием /api/host, на которую я могу отправить post-запрос для создания экземпляра Host, но я применил библиотеку djangorestframework-api-key

Итак, мой запрос от Insomnia (можно использовать и Postman, я думаю) выглядит следующим образом: enter image description here

В заголовке есть ключ API в авторизации, который я не буду показывать.

Теперь, когда я отправляю этот Post запрос, поле host_developer_email является NULL, что я ожидал - но мне нужно, чтобы оно имело что-то, чтобы иметь возможность захватить правильную строку в будущем при использовании этих данных в машинах/серверах

Или это неправильный путь? Должен ли я иметь две отдельные модели Hosts - одну для пользователей на сайте и другую для сторонних бэкендов и сервисов (т.е. машин), причем в последней нет поля host_developer_email, а поле host_label уникально?

Вернуться на верх