У меня есть модель пользователя и события,
class User(AbstractUser):
bio = models.CharField(max_length=255, blank=False, default='')
class Event(models.Model):
name = models.CharField(max_length=50)
user = models.ManyToManyField("User", related_name='event_player')
Я получаю количество пользователей, зарегистрированных в событиях, я пытался
Попробуйте 1
class EventSerializer(serializers.ModelSerializer):
players_count = serializers.IntegerField(
source='user_set.count',
read_only=True
)
class Meta:
model = Event
fields = ('id', 'name','players_count')
Попробуйте 2
class EventSerializer(serializers.ModelSerializer):
players_count = serializers.SerializerMethodField()
class Meta:
model = Event
fields = ('id', 'name','players_count')
def get_players_count(self, obj):
return obj.user_set.all().count()
Попробуйте 3
class EventSerializer(serializers.ModelSerializer):
def to_representation(self, instance):
return {'id': instance.pk, 'players_count': instance.user__count}
class Meta:
model = Event
fields = ('id', 'name','players_count')
Но ни один из них не имеет смысла, Как я могу получить общее количество вложенных пользователей ManyToMany. Я новичок в DRF, пожалуйста, помогите мне решить эту проблему.
Любая помощь приветствуется, спасибо.