Назначить внешний ключ в запросе DRF POST - PullRequest
1 голос
/ 17 апреля 2020

Как я могу напрямую добавить пользователя, который уже вошел в систему, когда я создаю компанию?

Модели:

 class Company(models.Model):
    name = models.CharField(max_length=255)

class User(AbstractBaseUser):
    company = models.ForeignKey(Company,  on_delete=models.CASCADE,
                                blank=True, null=True

Просмотр:

class CompanySetupView(ModelViewSet):
     queryset = Company.objects.all()
     permission_classes = [IsAuthenticated]
     serializer_class = CompanySetupSerializer

Сериализатор :

class CompanySetupSerializer(serializers.ModelSerializer):

    class Meta:
        model = Company
        fields = '__all__'

1 Ответ

0 голосов
/ 17 апреля 2020

Можете ли вы попробовать добавить этот метод в ваш сериализатор и протестировать его?

def create(self, validated_data):
    request = self.context['request']
    user = request.user
    company = super().create(validated_data)
    user.company = company
    user.save()
    return company

...