Hi,

May be you can create a new Serializer, including a ListField to get 
multiple seat IDs:

class ManyMovieTicketsSerializer(serializers.Serializer):
    show = serializers.IntegerField
    user = serializers.IntegerField
    seats = serializers.ListField(child=serializers.IntegerFields)

    def create(self, validated_data):
        iterate over seats and save every instance.

On Monday, April 17, 2017 at 1:19:23 AM UTC-4, Aamu Padi wrote:
>
> I am using Django as the backend server and Vue.js for the front end Movie 
> app.
>
> I have a Ticket model
>
> class MovieTicket(models.Model):
>     show = models.ForeignKey(Show)
>     seat = models.ForeignKey(Seat)
>     user = models.ForeignKey(User)
>     purchased_at = models.DateTimeField(default=timezone.now)
>     qrcode = models.ImageField(upload_to='qrcode', blank=True, null=True)
>     qrcode_data = models.CharField(max_length=255, unique=True, blank=True)
>
>     class Meta:
>         unique_together = ('show', 'seat')
>
> And its related Serializer
>
> class MovieTicketSerializer(serializers.ModelSerializer):
>     class Meta:
>         model = MovieTicket
>         fields = '__all__'
>
> To buy a new Ticket there's a view which is mapped to this url 
> *http://dev.site.com/api/movies/buy-ticket/ 
> <http://dev.site.com/api/movies/buy-ticket/>:*
>
> @api_view(['POST'])@permission_classes([IsAuthenticated])def 
> buy_ticket(request):
>     serialized = MovieTicketSerializer(data=request.data)
>     if serialized.is_valid():
>         serialized.save()
>         return Response(serialized.data, status=status.HTTP_201_CREATED)
>     return Response(serialized._errors, status=status.HTTP_400_BAD_REQUEST)
>
> Now from the front end (Vue.js) I can create a new movie ticket like this:
>
> const formBody = {
>     show: this.$store.state.showSelected.showTime.id,
>     user: this.$store.state.user.id,
>
>     // selectedSeats is an array of seats that have been selected by the 
> user. Here I am passing the first seat object.
>     seat: this.$store.state.selectedSeats[0].seat.id};
> this.$http.post("http://dev.site.com/api/movies/buy-ticket/";, formBody)
>     .then(function (response) {
>         console.log(response.data);
>     })
>     .catch(function (response) {
>         console.log(response);
>     });return;
>
> If the form was valid, this will create a new MovieTicket Object.
>
> Now, suppose if the user selected multiple seats, I can loop through each 
> selectedSeats array and get the seat ids. But what I am confused is how 
> can I pass multiple seat.id if Django rest framework is only accepting 
> one seat per request?
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/b8c28522-cf21-4081-9563-97a869f4fa7f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to