Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MODELS.PY
- class CustomerPackage(models.Model):
- reference = models.CharField(max_length=50, blank=True)
- package_date = models.DateField(auto_now_add=True)
- guests = models.ManyToManyField(Customer, related_name='%(class)s_guests')
- class AbstractBaseBooking(models.Model):
- customer = models.ForeignKey(Customer)
- booking_agent = models.ForeignKey(UserProfile)
- venue = models.ForeignKey(Venue)
- duration = models.CharField(max_length=10, choices=DURATION_CHOICES, default='1')
- booked_on = models.DateField(auto_now_add=True)
- booking_start = models.DateTimeField()
- pax = models.IntegerField(verbose_name='Number Of People')
- notes = models.TextField(blank=True, default='')
- customer_package = models.ForeignKey(CustomerPackage)
- class Meta:
- abstract = True
- ordering = ('booking_start',)
- def clean(self):
- assert False
- if self.customer_package is None:
- cp = CustomerPackage()
- cp.save()
- assert False
- self.customer_package = cp
- return super(AbstractBaseBooking, self).clean()
- class RestaurantBooking(AbstractBaseBooking):
- table = models.ForeignKey(Table)
- VIEWS.PY
- class RestaurantBookingListApiView(PreventAPICsrfCheckMixin, generics.ListCreateAPIView):
- '''
- API to list restaurant bookings or create a new one
- '''
- queryset = RestaurantBooking.objects.all()
- serializer_class = RestaurantBookingSerializer
- def pre_save(self, obj):
- assert False
- SERIALIZERS.PY
- class RestaurantBookingSerializer(serializers.ModelSerializer):
- class Meta:
- model = RestaurantBooking
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement