Julia k
Julia k

Reputation: 27

Assign foreign key in DRF POST request

How I can directly add user which already login, when I create company?

Models:

 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

View:

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

Serializer:

class CompanySetupSerializer(serializers.ModelSerializer):

    class Meta:
        model = Company
        fields = '__all__'

Upvotes: 1

Views: 97

Answers (1)

A'zam Mamatmurodov
A'zam Mamatmurodov

Reputation: 370

Can you try add this method to your serializer And test it ?

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

Upvotes: 1

Related Questions