@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 <
christian.lederm...@gmail.com> wrote:

> maybe
> https://github.com/marcgibbons/django-rest-framework-bulk
>
> HTH
>
> On 18 April 2017 at 11:29, Camilo Torres <camilotorr...@gmail.com> 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 django-users+unsubscr...@googlegroups.com.
> > To post to this group, send email to django-users@googlegroups.com.
> > 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 django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> 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 django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
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