У меня есть: object1 с OneToOneField с пользователем, object2 с ForeignKeys для пользователя и object1.
в сериализаторе, я хочу получить имя object1 и сделать его именем по умолчанию в object2.createAPIView запрещает операцию get, в то время как я могу использовать скрытое поле с currentDefaultUser.Как я могу получить идентификатор пользователя и использовать его для получения объекта1?я должен использовать retreive и создавать mixins?
модели
class Object1(models.Model):
user= models.ForeignKey(CustomUser, on_delete=models.CASCADE)
object1_name = models.CharField(max_length=30, null=False)
class Object2(models.Model):
user= models.ForeignKey(CustomUser, on_delete=models.CASCADE)
object1 = models.ForeignKey(Object1, on_delete=models.CASCADE)
object2_name = models.CharField(max_length=30, null=False)
сериализаторы
class Object_2_Serializer(serializers.ModelSerializer):
user = serializers.HiddenField(
default=serializers.CurrentUserDefault())
class Meta:
model = Object2
fields = ('user', 'object1_name', 'object2_name',)
views
class object_2_CreateView(generics.GenericAPIView,
mixins.RetrieveModelMixin,
mixins.CreateModelMixin,
):
queryset = Object2.objects.all()
serializer_class = Object_2_Serializer
authentication_classes = (TokenAuthentication,)
permission_classes = (IsAuthenticated,)
lookup_field = 'object1_name'
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
def get(self, request, *args, **kwargs):
return self.retrieve(request, *args, **kwargs)
Я хочу получить object1_name.