2017-07-01 9 views
1

私はBookTicketTicketという2つのモデルを持っています。有効なシリアル化されたデータを更新するには?

class BookTicket(models.Model): 
    user = models.ForeignKey(User) 
    booking_ref = models.CharField(max_length=25, blank=True) 

class Ticket(models.Model): 
    seat = models.ForeignKey(Seat) 
    user = models.ForeignKey(User) 
    show = models.ForeignKey(Show) 
    booking_ref = models.ForeignKey(BookTicket) 

そしてこれは、シリアル化さis_valid場合は、新しい予約オブジェクトを作成し、booking_refように、そのオブジェクトを更新されて、私がやりたいどのようなクライアント側からのデータ

[ 
    {u'seat': 49, u'user': 3, u'show': 2}, 
    {u'seat': 50, u'user': 3, u'show': 2} 
] 

ですすべてのチケットのデータ。

def buy_ticket(request): 
    serialized = TicketSerializer(data=request.data, many=True) 
    if serialized.is_valid(): 
     ... 
     b = BookTicket.objects.create(user=request.user) 
     ... 
     ... update all of the data's booking_ref with newly created booking instance i.e., b 
     ... 
     serialized.save() 
     return Response(serialized.data, status=status.HTTP_201_CREATED) 
    return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST) 

どうすればいいですか?

答えて

2

引数としてbsaveメソッド(docs)に渡すことができます。新しいチケットには

serialized = TicketSerializer(data=request.data, many=True) 
if serialized.is_valid(): 
    b = BookTicket.objects.create(user=request.user) 
    serialized.save(booking_ref=b) 
+1

のようになります。ありがとうございました – Aamu

関連する問題