Guest User

Untitled

a guest
Jul 21st, 2018
386
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.04 KB | None | 0 0
  1. accounts/models.py
  2.  
  3. class Role(models.Model):
  4.  
  5. ROLE_CHOICES = (
  6. ('agent', 'Agent'),
  7. ('agency', 'Agency'),
  8. ('manufacturer', 'Manufacturer'),
  9. )
  10. role = models.CharField(max_length=15, choices=ROLE_CHOICES)
  11.  
  12. def __str__(self):
  13. return self.role
  14.  
  15.  
  16. class User(AbstractUser):
  17.  
  18. role = models.ForeignKey(
  19. Role,
  20. on_delete=models.CASCADE,
  21. blank=True,
  22. null=True,
  23. )
  24.  
  25. def __str__(self):
  26. return self.username
  27.  
  28. def save(self, *args, **kwargs):
  29. if not self.pk: # the instance is created
  30. self.role, created = Role.objects.get_or_create(role="agent")
  31. return super().save(*args, **kwargs)
  32.  
  33.  
  34.  
  35.  
  36. agency/models.py
  37.  
  38. class Agency(models.Model):
  39.  
  40. owner = models.OneToOneField(User, on_delete=models.CASCADE)
  41. name = models.CharField(
  42. max_length=200,
  43. blank=False,
  44. null=False)
  45. city = models.CharField(max_length=150, blank=False, null=False)
  46. street = models.CharField(max_length=150, blank=True, null=True)
  47. country = models.CharField(max_length=150, blank=True, null=True)
  48. mobile_number = PhoneNumberField()
  49. email = models.EmailField(blank=False, null=False)
  50. vat_number = models.CharField(max_length=40, blank=False, null=False)
  51.  
  52. agents/models.py
  53.  
  54. class Agent(models.Model):
  55.  
  56. SEX_CHOICE = (
  57. ('male', 'Male'),
  58. ('female', 'Female'),
  59. )
  60. owner = models.OneToOneField(User, on_delete=models.CASCADE)
  61. agencies = models.ForeignKey(
  62. Agency,
  63. related_name="agents",
  64. on_delete=models.CASCADE)
  65. manufacturers = models.ForeignKey(
  66. Manufacturer,
  67. related_name="agents_manufacturer",
  68. on_delete=models.CASCADE,
  69. blank=True,
  70. null=True)
  71. date_of_birth = models.DateField(blank=True, null=True)
  72. sex = models.CharField(max_length=6, choices=SEX_CHOICE)
  73. city = models.CharField(max_length=150, blank=False, null=False)
  74. street = models.CharField(max_length=150, blank=True, null=True)
  75. country = models.CharField(max_length=150, blank=True, null=True)
  76. mobile_number = PhoneNumberField()
  77.  
  78.  
  79.  
  80. class Manufacturer(models.Model):
  81.  
  82. owner = models.OneToOneField(
  83. User, on_delete=models.CASCADE, related_name="manufacturer")
  84. agency = models.ForeignKey(
  85. Agency,
  86. blank=True,
  87. null=True,
  88. related_name="agency_manufacturer",
  89. on_delete=models.CASCADE)
  90. name = models.CharField(
  91. max_length=200,
  92. blank=False,
  93. null=False)
  94. city = models.CharField(max_length=150, blank=False, null=False)
  95. street = models.CharField(max_length=150, blank=True, null=True)
  96. country = models.CharField(max_length=150, blank=True, null=True)
  97.  
  98.  
  99.  
  100. shops/models.py
  101.  
  102. class Shop(models.Model):
  103.  
  104. agent = models.ForeignKey(Agent, on_delete=models.CASCADE, null=True)
  105. name = models.CharField(max_length=150, blank=False, null=False)
  106. city = models.CharField(max_length=150, blank=False, null=False)
  107. street = models.CharField(max_length=150, blank=True, null=True)
  108. country = models.CharField(max_length=150, blank=True, null=True)
  109. mobile_number = PhoneNumberField()
  110. vat_number = models.CharField(max_length=40, blank=False, null=False)
  111.  
  112. def __str__(self):
  113. return self.name
  114.  
  115.  
  116. class Category(models.Model):
  117.  
  118. name = models.CharField(max_length=150, db_index=True)
  119. slug = models.SlugField(max_length=150, db_index=True)
  120. description = models.TextField()
  121. parent = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True)
  122.  
  123. def __str__(self):
  124. return self.name
  125.  
  126.  
  127. class Product(models.Model):
  128.  
  129. product_code = models.CharField(max_length=50, blank=False, null=False)
  130. agencies = models.ForeignKey(
  131. Agency,
  132. on_delete=models.CASCADE,
  133. related_name="product_agencies",
  134. null=True)
  135. manufacturer = models.ForeignKey(
  136. Manufacturer,
  137. related_name="product_manufacturers",
  138. on_delete=models.CASCADE,
  139. null=True)
  140. name = models.CharField(max_length=120, db_index=True)
  141. category = models.ForeignKey(
  142. Category,
  143. related_name="product_category",
  144. null=True,
  145. on_delete=models.CASCADE)
  146. price = models.DecimalField(max_digits=10, decimal_places=2)
  147. min_price = models.DecimalField(max_digits=10, decimal_places=2)
  148. packaging = models.CharField(max_length=120)
  149. package_dimension = models.CharField(max_length=120, blank=True, null=True)
  150. package_weight = models.PositiveIntegerField(default=1)
  151.  
  152.  
  153. orders/models.py
  154.  
  155. class Order(models.Model):
  156.  
  157. product_code = models.CharField(max_length=50, blank=False, null=False)
  158. agents = models.ForeignKey(
  159. Agent,
  160. on_delete=models.CASCADE,
  161. related_name="order_agents")
  162. shops = models.ForeignKey(
  163. Shop,
  164. related_name="order_manufacturers",
  165. on_delete=models.CASCADE)
  166. product = models.ForeignKey(
  167. Product,
  168. related_name="order_product",
  169. on_delete=models.CASCADE)
  170. quantity = models.PositiveIntegerField(default=1)
  171. unit = models.CharField(max_length=50)
Add Comment
Please, Sign In to add comment