У меня есть проект Django Rest Framework. У меня есть знакомые модели, у которых есть подружка и подружка. friender - это внешний ключ для пользователя, который содержит имя пользователя, а friended - поле char, которое будет именем пользователя.
У меня есть имя пользователя, переданное через URL, который вызывает сериализацию. Я хочу, чтобы он использовался для поиска по обоим полям и определения наличия в записях имени пользователя friender и friended.
Было бы лучше установить оба поля в качестве charfields и хранить имена пользователей в обоих или есть простой способ поиска обоих полей и объединения результатов ...
сейчас он проверяет друзей ... я хочу проверить друзей и имя пользователя
вот мой код:
Модель:
class Friend(models.Model):
friender = models.ForeignKey(User, on_delete=models.CASCADE)
friended = models.CharField(max_length=50)
status = models.SmallIntegerField()
blocked = models.BooleanField(default=False)
favorite = models.BooleanField(default=False)
created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.friender.username + self.friended
сериализатору:
class FriendSerializer(serializers.ModelSerializer):
class Meta:
model = Friend
fields = (
'friender',
'friended',
'status',
'blocked',
'favorite',
)
depth=2
вид:
from users.models import Friend
from ..serializers import FriendSerializer
from rest_framework import viewsets
class FriendViewSet(viewsets.ModelViewSet):
queryset = Friend.objects.all()
lookup_field = 'friended'
serializer_class = FriendSerializer