2016-07-26 7 views
0

私は次のモデルがあります:モデルを正しくシリアル化する方法は?

class Product(models.Model): 
    name = models.CharField(max_length=500, blank=False, null=False) 

class ProdcutsAccess(models.Model): 
    user = models.ForeignKey(User) 
    product = models.ForeignKey(Product,related_name='hidden_products') 

私はProductクラスをシリアル化したいとそこにフィールド 'hidden_​​users' を持つようになっています

hidden_​​users:[マーク、ジョー、SAM]

つまりユーザー名のリスト

私のserailizersは次のようになります:

class ProductSerializer(serializers.ModelSerializer): 
    hidden_users = serializers.SlugRelatedField(many=True, slug_field='user', read_only=False, source='hidden_products',queryset=User.objects.all()) 

しかし、私は、シリアライズ

どのようにそれを獲得することができますJSONエラー

されていません取得していますか?私はSerializerMethodFieldと回避策を使用することをお勧めすることができます

+0

あなたはそれをシリアル化したいなぜ、あなたは漬物を試してみたのですか? – Newbie

答えて

0

class ProductSerializer(serializers.ModelSerializer): 
hidden_users = serializers.SerializerMethodField() 

def get_hidden_users(self, product): 
    hidden_users = product.hidden_products.values_list('user', flat=True) 
    return [user.name for user in hidden_users] 

class Meta: 
    model = Product 
+0

私はこのaproachを知っていますが、それは編集可能ではありません。読み取り専用 –

関連する問題