models.py
class Post(models.Model):
content = models.TextField()
created = models.DateTimeField(auto_now_add=True)
suspended = models.BooleanField(default=False)
user = models.ForeignKey(User, on_delete=models.CASCADE)
class Follow(models.Model):
follower = models.ForeignKey(User, related_name='followings', on_delete=models.CASCADE)
following = models.ForeignKey(User, related_name='followers', on_delete=models.CASCADE)
created = models.DateTimeField(auto_now_add=True)
class Meta:
unique_together = ('follower', 'following')
serializer.py
class PostSerializer(serializers.ModelSerializer):
user = UserSerializer(read_only=True)
class UserSerializer(serializers.ModelSerializer):
is_following = serializers.BooleanField(read_only=True)
views.py
class PostViewSet(ModelViewSet):
serializer_class = PostSerializer
permission_classes = [IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly]
def get_queryset(self):
queryset = Post.objects.filter(
suspended=False
).select_related(
'user'
)
if self.request.user.is_authenticated:
queryset = queryset.annotate(
user__is_following=Exists(
Follow.objects.filter(
follower=self.request.user,
following=OuterRef("user_id")
)
)
)
else:
queryset = queryset.annotate(
user__is_following=Value(False)
)
return queryset
Я не могу проверить is_following внутри объекта пользователя.
В моем списке сообщений я использую вложенный сериализатор для получения информации о пользователе для каждого сообщения, но мне не удается проверить is_following. Я хочу понять, где я ошибся, поскольку я новичок в DRF.
Изменить
{
"next": "http://localhost:8000/v1/posts/?cursor= ... IwMCUzQTAw",
"previous": null,
"results": [
{
"content": "deneme 22",
"created": "2026-03-06T21:08:12.630305Z",
"id": 22,
"suspended": false,
"user": {
"date_joined": "2026-03-06T21:05:15.279892Z",
"email": "erkan.unluturk@outlook.com",
"first_name": "",
"id": 1,
"is_active": true,
>>>> "is_following", >>>> This field is not showing!!
"last_name": "",
"username": "erkan.unluturk"
}
}
]
}
Подробнее здесь: https://stackoverflow.com/questions/799 ... -framework
Невозможно прочитать данные из вложенного сериализатора в Django REST Framework ⇐ Python
Программы на Python
1772835213
Anonymous
models.py
class Post(models.Model):
content = models.TextField()
created = models.DateTimeField(auto_now_add=True)
suspended = models.BooleanField(default=False)
user = models.ForeignKey(User, on_delete=models.CASCADE)
class Follow(models.Model):
follower = models.ForeignKey(User, related_name='followings', on_delete=models.CASCADE)
following = models.ForeignKey(User, related_name='followers', on_delete=models.CASCADE)
created = models.DateTimeField(auto_now_add=True)
class Meta:
unique_together = ('follower', 'following')
serializer.py
class PostSerializer(serializers.ModelSerializer):
user = UserSerializer(read_only=True)
class UserSerializer(serializers.ModelSerializer):
is_following = serializers.BooleanField(read_only=True)
views.py
class PostViewSet(ModelViewSet):
serializer_class = PostSerializer
permission_classes = [IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly]
def get_queryset(self):
queryset = Post.objects.filter(
suspended=False
).select_related(
'user'
)
if self.request.user.is_authenticated:
queryset = queryset.annotate(
user__is_following=Exists(
Follow.objects.filter(
follower=self.request.user,
following=OuterRef("user_id")
)
)
)
else:
queryset = queryset.annotate(
user__is_following=Value(False)
)
return queryset
Я не могу проверить is_following внутри объекта пользователя.
В моем списке сообщений я использую вложенный сериализатор для получения информации о пользователе для каждого сообщения, но мне не удается проверить is_following. Я хочу понять, где я ошибся, поскольку я новичок в DRF.
[b]Изменить[/b]
{
"next": "http://localhost:8000/v1/posts/?cursor=cD0yMDI2LTAzLTA2KzIxJTNBMDclM0E0Ny43NTc4MDklMkIwMCUzQTAw",
"previous": null,
"results": [
{
"content": "deneme 22",
"created": "2026-03-06T21:08:12.630305Z",
"id": 22,
"suspended": false,
"user": {
"date_joined": "2026-03-06T21:05:15.279892Z",
"email": "erkan.unluturk@outlook.com",
"first_name": "",
"id": 1,
"is_active": true,
>>>> "is_following", >>>> This field is not showing!!
"last_name": "",
"username": "erkan.unluturk"
}
}
]
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79902546/cannot-read-data-from-nested-serializer-in-django-rest-framework[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия