@Camilo Hi, I tried this way

class ManyMovieTicketSerializer(serializers.ModelSerializer):

    seats = serializers.ListField(

        child=serializers.IntegerField(min_value=0, max_value=100)

    )

    class Meta:

        model = MovieTicket

        fields = '__all__'


But I am getting error:

*AttributeError at /api/movies/buy-many-tickets/*


Got AttributeError when attempting to get a value for field `seats` on
serializer `ManyMovieTicketSerializer`.
The serializer field might be named incorrectly and not match any attribute
or key on the `MovieTicket` instance.
Original exception text was: 'MovieTicket' object has no attribute 'seats'.

What am I missing?

On Tue, Apr 18, 2017 at 4:45 PM, Christian Ledermann <
[email protected]> wrote:

> maybe
> https://github.com/marcgibbons/django-rest-framework-bulk
>
> HTH
>
> On 18 April 2017 at 11:29, Camilo Torres <[email protected]> wrote:
> > 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/:
> >>
> >> @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.
>
>
>
> --
> Best Regards,
>
> Christian Ledermann
>
> Newark-on-Trent - UK
> Mobile : +44 7474997517
>
> https://uk.linkedin.com/in/christianledermann
> https://github.com/cleder/
>
>
> <*)))>{
>
> If you save the living environment, the biodiversity that we have left,
> you will also automatically save the physical environment, too. But If
> you only save the physical environment, you will ultimately lose both.
>
> 1) Don’t drive species to extinction
>
> 2) Don’t destroy a habitat that species rely on.
>
> 3) Don’t change the climate in ways that will result in the above.
>
> }<(((*>
>
> --
> 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/CABCjzWotO%2B77TkYeJyBq%3DuKEtuPbTmnn%
> 3DOzy%2BpmQ3AuDD462%3DA%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAHSNPWtQZWJ5gOsHG45GQZkqCHew5w3CA5zCNfrCXZuB_hO5pA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to