У меня есть три модели: Пользователь (модель аутентификации django), Потребитель, Задачи .
Модель пользователя и Потребитель имеет отношение один к одному, а Потребитель и Задача - один к одномумного отношений.
Мой model.py выглядит так:
class Consumer(models.Model):
user=models.OneToOneField(User,on_delete=models.CASCADE)
average_rating=models.FloatField(default=5.0)
class Tasks(models.Model):
consumer=models.ForeignKey(Consumer,on_delete=models.CASCADE,related_name='consumer_obj')
title=models.CharField(max_length=50)
description=models.CharField(max_length=200)
added_on=models.DateTimeField(auto_now=True)
Мой serializers.py выглядит так:
class TaskSerializer(serializers.ModelSerializer):
category=serializers.CharField(max_length=10)
class Meta:
model=Tasks
fields=['title','description']
class UserSerializer(serializers.ModelSerializer):
password=serializers.CharField(max_length=10,write_only=True)
class Meta:
model=User
fields=['username','password','email']
class ConsumerSerializer(serializers.ModelSerializer):
user=UserSerializer()
tasks=TaskSerializer(many=True,source='consumer_obj')
class Meta:
model=Consumer
fields=['user','average_rating','tasks']
Теперь, что я хочу сделать, это то, что всякий раз, когда я сохраняю публикацию задачи, она должна сохранять задачу и связываться с текущим потребителем.
Что может бытьготово.
Теперь, всякий раз, когда я вызываю serializer.save () в своих представлениях, я могу передать пользовательский экземпляр в качестве аргумента примерно так:
serializer.save(user=request.user)
И в моем сериализаторе создать() Функция Я могу запросить пользователя и затем запросить потребителя с помощью пользователя, чтобы связать задачу с этим пользователем.
Я хочу знать, есть ли лучший способ сделать это?Я новичок в DRF и с трудом изучаю его.