Django backend for WorkX project
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
Este repositorio está archivado. Puede ver los archivos y clonarlo, pero no puede subir cambios o reportar incidencias ni pedir Pull Requests.

54 líneas
1.4 KiB

  1. from django.db import models
  2. class TaxType(models.Model):
  3. name = models.CharField(max_length=15)
  4. percentage = models.DecimalField(max_digits=5, decimal_places=2)
  5. def __str__(self):
  6. return self.name
  7. class Country(models.Model):
  8. name = models.CharField(max_length=30)
  9. def __str__(self):
  10. return self.name
  11. class State(models.Model):
  12. name = models.CharField(max_length=30)
  13. country = models.OneToOneField(Country, on_delete=models.CASCADE)
  14. def __str__(self):
  15. return self.name
  16. class City(models.Model):
  17. name = models.CharField(max_length=30)
  18. state = models.OneToOneField(State, on_delete=models.CASCADE)
  19. def __str__(self):
  20. return self.name
  21. class Address(models.Model):
  22. city = models.ForeignKey(City, on_delete=models.CASCADE)
  23. address_line1 = models.CharField(max_length=50)
  24. address_line2 = models.CharField(max_length=50)
  25. postal_code = models.CharField(max_length=15)
  26. tax_type = models.ForeignKey(TaxType, on_delete=models.CASCADE, blank=True, null=True)
  27. tax_id = models.CharField(max_length=30, blank=True, null=True)
  28. def __str__(self):
  29. return self.address_line1
  30. class Client(models.Model):
  31. name = models.CharField(max_length=30)
  32. profile_picture = models.ImageField(upload_to='client_images', null=True, blank=True)
  33. address = models.ForeignKey(Address, on_delete=models.CASCADE)
  34. def __str__(self):
  35. return self.name