【发布时间】:2017-09-11 13:44:58
【问题描述】:
我有下面列出的三个模型。当我序列化媒体对象时,所有者会按应有的方式列出。槽表拥有is_accepted 值,我希望媒体序列化程序仅列出拥有媒体的所有者。关于如何实现这一点的任何想法?
型号:
class Media(models.Model):
genre = models.ForeignKey(Genre, blank=True, null=True, db_index=True)
owners = models.ManyToManyField(User, through='Usermedia', related_name='owners')
title = models.CharField(max_length=45, blank=True)
created = models.DateTimeField(auto_now_add=True)
class Usermedia(models.Model):
user = models.ForeignKey(User, on_delete=models.DO_NOTHING, related_name='usermedia')
media = models.ForeignKey(Media, on_delete=models.CASCADE, related_name='ownership')
is_active = models.BooleanField(default=0)
is_accepted = models.BooleanField(default=1)
class User(AbstractBaseUser, PermissionsMixin):
email=models.CharField(unique=True, max_length=255)
序列化器
class UserSerializer(serializers.ModelSerializer):
email = serializers.EmailField(
validators=[validators.UniqueValidator(queryset=User.objects.all())]
)
class MediaSerializer(serializers.ModelSerializer):
owners = UserSerializer(many=True, required=False)
created = serializers.DateTimeField(read_only=True)
genre = serializers.SlugRelatedField(required=True, slug_field='name', queryset=Genre.objects.all())
感谢您抽出宝贵时间查看此内容
【问题讨论】:
标签: django django-rest-framework