drf/create serizlizerを使用していくつかのネストされたモデルを作成しようとしています。DRF oneToOneFieldシリアライザを作成
私がシリアル化しようとしているのは、ポストを持つ 'TradePost'モデルとその中のProductItemです。
私は既に 'ProductItemSerializer'とこれを使って 'PostSerializer'を持っています。どうすればそれらをシリアル化できますか?創造と? pk値で既存のレコードを伝えるのではなく、
models.py serialziers.pyで
class ProductItem(models.Model):
baseProduct = models.ForeignKey(Product, related_name='baseProduct')
seller = models.ForeignKey(User)
price = models.DecimalField(max_digits=6, decimal_places=2)
isOrderClosed = models.BooleanField()
isTradeCompleted = models.BooleanField()
def __str__(self):
return '[seller = '+self.seller.username+']' + '[product = '+(str)(self.baseProduct)+']' + '[id = '+(str)(self.id)+']'
class TradePost(models.Model):
basePost = models.OneToOneField(Post)
baseProductItem = models.OneToOneField(ProductItem)
def __str__(self):
return '[post = ' + (str)(self.basePost) + ']' + '[product = ' + (str)(self.baseProductItem) + ']' + '[id = ' + (str)(self.id) + ']'
class ProductItemCreateSerializer(serializers.ModelSerializer):
class Meta:
model = ProductItem
fields = ('baseProduct', 'price')
#???
class TradePostCreateSerializer(serializers.ModelSerializer):
class Meta:
model = TradePost
fields = ('basePost', 'baseProductItem',)
def create(self, validated_data):
post =
私はその意味で、それはすでにレコードが作成されているpk値が必要です。 または?私は理解が間違っていますか? – uzu
これは { "basePost":[ "不正なタイプです。予想されるpk値、受信したdict。 ] "baseProductItem":[ "不正なタイプです。予想されるpk値、受信したdict" ] } – uzu