В каком правильном поле он должен быть применен
Я не могу понять, какое поле я должен использовать в классе сериализатора, если в модели оно является ForeignKey
class DotPrivateSerializer(serializers.ModelSerializer):
tag = serializers.________________Field(
queryset=TagPrivate.objects.filter(user=serializers.CurrentUserDefault())
)
models.py
class DotPrivate(models.Model):
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE
)
name = models.CharField(max_length=255)
description = models.TextField(max_length=350, blank=True)
lon = models.CharField(max_length=20)
lat = models.CharField(max_length=20)
rating = models.FloatField(validators=[MinValueValidator(0.0), MaxValueValidator(5.0)])
tag = models.ForeignKey('TagPrivate', on_delete=models.PROTECT)
Используйте SerializerMethodField. Приведенный ниже код вложит запись внешнего ключа в json.
class DotPrivateSerializer(serializers.ModelSerializer):
tag = serializers.SerializerMethodField()
def get_tag(self,obj):
queryset=TagPrivate.objects.filter(user=serializers.CurrentUserDefault())
return TagPrivateSerializer(queryset).data