Advertisement
hellsgate

Add required field during API create

Jul 12th, 2013
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.66 KB | None | 0 0
  1. MODELS.PY
  2.  
  3. class CustomerPackage(models.Model):
  4.     reference = models.CharField(max_length=50, blank=True)
  5.     package_date = models.DateField(auto_now_add=True)
  6.     guests = models.ManyToManyField(Customer, related_name='%(class)s_guests')
  7.  
  8.  
  9. class AbstractBaseBooking(models.Model):
  10.     customer = models.ForeignKey(Customer)
  11.     booking_agent = models.ForeignKey(UserProfile)
  12.     venue = models.ForeignKey(Venue)
  13.     duration = models.CharField(max_length=10, choices=DURATION_CHOICES, default='1')
  14.     booked_on = models.DateField(auto_now_add=True)
  15.     booking_start = models.DateTimeField()
  16.     pax = models.IntegerField(verbose_name='Number Of People')
  17.     notes = models.TextField(blank=True, default='')
  18.     customer_package = models.ForeignKey(CustomerPackage)
  19.  
  20.     class Meta:
  21.         abstract = True
  22.         ordering = ('booking_start',)
  23.  
  24.     def clean(self):
  25.         assert False
  26.         if self.customer_package is None:
  27.             cp = CustomerPackage()
  28.             cp.save()
  29.             assert False
  30.             self.customer_package = cp
  31.  
  32.         return super(AbstractBaseBooking, self).clean()
  33.  
  34.  
  35. class RestaurantBooking(AbstractBaseBooking):
  36.     table = models.ForeignKey(Table)
  37.  
  38.  
  39. VIEWS.PY
  40. class RestaurantBookingListApiView(PreventAPICsrfCheckMixin, generics.ListCreateAPIView):
  41.     '''
  42.    API to list restaurant bookings or create a new one
  43.    '''
  44.     queryset = RestaurantBooking.objects.all()
  45.     serializer_class = RestaurantBookingSerializer
  46.  
  47.     def pre_save(self, obj):
  48.         assert False
  49.  
  50.  
  51. SERIALIZERS.PY
  52. class RestaurantBookingSerializer(serializers.ModelSerializer):
  53.     class Meta:
  54.         model = RestaurantBooking
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement