Использование готовой базы Djando - Python

Узнай цену своей работы

Формулировка задачи:

Как сгенерить модели из готовой худо-бедно описано (пришлось убрать схемы из постгре, но и ладно). А вот дальше как быть не понятно. Модели сгенерились:
Листинг программы
  1. # This is an auto-generated Django model module.
  2. # You'll have to do the following manually to clean this up:
  3. # * Rearrange models' order
  4. # * Make sure each model has one field with primary_key=True
  5. # * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
  6. # Feel free to rename the models, but don't rename db_table values or field names.
  7. from __future__ import unicode_literals
  8. from django.db import models
  9. class DimEmployee(models.Model):
  10. employee_sid = models.AutoField(primary_key=True)
  11. first_name = models.CharField(max_length=64, blank=True, null=True)
  12. last_name = models.CharField(max_length=64, blank=True, null=True)
  13. middle_name = models.CharField(max_length=64, blank=True, null=True)
  14. login = models.CharField(max_length=64, blank=True, null=True)
  15. pwd = models.CharField(max_length=256, blank=True, null=True)
  16. is_active = models.CharField(max_length=1)
  17. sysdate = models.DateTimeField(blank=True, null=True)
  18. class Meta:
  19. managed = False
  20. db_table = 'dim_employee'
  21.  
  22. class DimPatient(models.Model):
  23. patient_sid = models.AutoField(primary_key=True)
  24. patient_bk = models.CharField(max_length=64, blank=True, null=True)
  25. first_name = models.CharField(max_length=64, blank=True, null=True)
  26. last_name = models.CharField(max_length=64, blank=True, null=True)
  27. middle_name = models.CharField(max_length=64, blank=True, null=True)
  28. sex = models.CharField(max_length=1, blank=True, null=True)
  29. dt_birth = models.CharField(max_length=64, blank=True, null=True)
  30. dt_death = models.CharField(max_length=64, blank=True, null=True)
  31. spdul_code = models.CharField(max_length=64, blank=True, null=True)
  32. spdul_num = models.CharField(max_length=64, blank=True, null=True)
  33. snils = models.CharField(max_length=64, blank=True, null=True)
  34. oms_num = models.CharField(max_length=64, blank=True, null=True)
  35. dms_num = models.CharField(max_length=64, blank=True, null=True)
  36. sysdate = models.DateTimeField(blank=True, null=True)
  37. class Meta:
  38. managed = False
  39. db_table = 'dim_patient'
  40.  
  41. class DimSensor(models.Model):
  42. sensid = models.CharField(primary_key=True, max_length=64)
  43. sensor_type_sid = models.IntegerField(blank=True, null=True)
  44. class Meta:
  45. managed = False
  46. db_table = 'dim_sensor'
  47.  
  48. class DirAction(models.Model):
  49. action_sid = models.IntegerField(primary_key=True)
  50. action_name = models.CharField(max_length=256, blank=True, null=True)
  51. class Meta:
  52. managed = False
  53. db_table = 'dir_action'
  54.  
  55. class DirDep(models.Model):
  56. dep_sid = models.AutoField(primary_key=True)
  57. lpu_sid = models.IntegerField(blank=True, null=True)
  58. dep_name = models.CharField(max_length=256, blank=True, null=True)
  59. class Meta:
  60. managed = False
  61. db_table = 'dir_dep'
  62.  
  63. class DirLpu(models.Model):
  64. lpu_sid = models.AutoField(primary_key=True)
  65. lpu_name = models.CharField(max_length=256, blank=True, null=True)
  66. class Meta:
  67. managed = False
  68. db_table = 'dir_lpu'
  69.  
  70. class DirMsgDataAttr(models.Model):
  71. msg_data_attr_sid = models.AutoField(primary_key=True)
  72. attr_name = models.CharField(max_length=64, blank=True, null=True)
  73. attr_note = models.CharField(max_length=256, blank=True, null=True)
  74. class Meta:
  75. managed = False
  76. db_table = 'dir_msg_data_attr'
  77.  
  78. class DirPost(models.Model):
  79. post_sid = models.AutoField(primary_key=True)
  80. post_name = models.CharField(max_length=256, blank=True, null=True)
  81. class Meta:
  82. managed = False
  83. db_table = 'dir_post'
  84.  
  85. class DirRole(models.Model):
  86. role_sid = models.IntegerField(primary_key=True)
  87. role_name = models.CharField(max_length=64, blank=True, null=True)
  88. class Meta:
  89. managed = False
  90. db_table = 'dir_role'
  91.  
  92. class DirSensorType(models.Model):
  93. sensor_type_sid = models.AutoField(primary_key=True)
  94. sensor_type_name = models.CharField(max_length=256, blank=True, null=True)
  95. sensor_note = models.CharField(max_length=256, blank=True, null=True)
  96. class Meta:
  97. managed = False
  98. db_table = 'dir_sensor_type'
  99.  
  100. class DirSpdul(models.Model):
  101. spdul_code = models.CharField(primary_key=True, max_length=64)
  102. name = models.CharField(max_length=256)
  103. short_name = models.CharField(max_length=64, blank=True, null=True)
  104. template = models.CharField(max_length=64, blank=True, null=True)
  105. commnt = models.CharField(max_length=256, blank=True, null=True)
  106. class Meta:
  107. managed = False
  108. db_table = 'dir_spdul'
  109. class FactActionAlarms(models.Model):
  110. action_alarms_sid = models.AutoField()
  111. condition_sid = models.IntegerField(blank=True, null=True)
  112. patient_sid = models.BigIntegerField(blank=True, null=True)
  113. action_sid = models.IntegerField(blank=True, null=True)
  114. sensid = models.CharField(max_length=64, blank=True, null=True)
  115. msg_sid = models.BigIntegerField(blank=True, null=True)
  116. sysdate = models.DateTimeField(blank=True, null=True)
  117. class Meta:
  118. managed = False
  119. db_table = 'fact_action_alarms'
  120.  
  121. class FactMsgData(models.Model):
  122. msg_sid = models.AutoField(primary_key=True)
  123. sensid = models.CharField(max_length=64, blank=True, null=True)
  124. dhubid = models.CharField(max_length=64, blank=True, null=True)
  125. cachedbid = models.CharField(max_length=64, blank=True, null=True)
  126. time = models.IntegerField(blank=True, null=True)
  127. start = models.IntegerField(blank=True, null=True)
  128. stop = models.IntegerField(blank=True, null=True)
  129. json_data = models.TextField(blank=True, null=True) # This field type is a guess.
  130. sysdate = models.DateTimeField(blank=True, null=True)
  131. class Meta:
  132. managed = False
  133. db_table = 'fact_msg_data'
  134.  
  135. class LinkCondition(models.Model):
  136. condition_sid = models.AutoField(primary_key=True)
  137. patient_sid = models.BigIntegerField(blank=True, null=True)
  138. rule_sid = models.IntegerField(blank=True, null=True)
  139. action_sid = models.IntegerField(blank=True, null=True)
  140. attr_val_start = models.IntegerField(blank=True, null=True)
  141. attr_val_end = models.IntegerField(blank=True, null=True)
  142. length_start = models.IntegerField(blank=True, null=True)
  143. length_end = models.IntegerField(blank=True, null=True)
  144. condition_order = models.IntegerField(blank=True, null=True)
  145. sysdate = models.DateTimeField(blank=True, null=True)
  146. class Meta:
  147. managed = False
  148. db_table = 'link_condition'
  149.  
  150. class LinkEmpLink(models.Model):
  151. emp_link_sid = models.AutoField(primary_key=True)
  152. lpu_sid = models.IntegerField(blank=True, null=True)
  153. employee_sid = models.IntegerField(blank=True, null=True)
  154. dep_sid = models.IntegerField(blank=True, null=True)
  155. post_sid = models.IntegerField(blank=True, null=True)
  156. role_sid = models.IntegerField(blank=True, null=True)
  157. sysdate = models.DateTimeField(blank=True, null=True)
  158. class Meta:
  159. managed = False
  160. db_table = 'link_emp_link'
  161.  
  162. class LinkPatientLink(models.Model):
  163. patient_link_sid = models.AutoField()
  164. emp_link_sid = models.IntegerField(blank=True, null=True)
  165. room_bed_link_sid = models.IntegerField(blank=True, null=True)
  166. dep_sid = models.IntegerField(blank=True, null=True)
  167. employee_sid = models.IntegerField(blank=True, null=True)
  168. patient_sid = models.BigIntegerField(blank=True, null=True)
  169. lpu_sid = models.IntegerField(blank=True, null=True)
  170. date_link = models.DateField(blank=True, null=True)
  171. date_unlink = models.DateField(blank=True, null=True)
  172. sysdate = models.DateTimeField(blank=True, null=True)
  173. class Meta:
  174. managed = False
  175. db_table = 'link_patient_link'
  176.  
  177. class LinkRoomBedLink(models.Model):
  178. room_bed_link_sid = models.AutoField(primary_key=True)
  179. lpu_id = models.IntegerField(blank=True, null=True)
  180. dep_sid = models.IntegerField(blank=True, null=True)
  181. room_num = models.CharField(max_length=64, blank=True, null=True)
  182. bed_num = models.CharField(max_length=64, blank=True, null=True)
  183. sysdate = models.DateTimeField(blank=True, null=True)
  184. class Meta:
  185. managed = False
  186. db_table = 'link_room_bed_link'
  187.  
  188. class LinkRuleLink(models.Model):
  189. rule_sid = models.AutoField(primary_key=True)
  190. action_sid = models.IntegerField(blank=True, null=True)
  191. msg_data_attr_sid = models.IntegerField(blank=True, null=True)
  192. def_attr_val_start = models.IntegerField(blank=True, null=True)
  193. def_attr_val_end = models.IntegerField(blank=True, null=True)
  194. def_length_start = models.IntegerField(blank=True, null=True)
  195. def_length_end = models.IntegerField(blank=True, null=True)
  196. condition_order = models.IntegerField(blank=True, null=True)
  197. sysdate = models.DateTimeField(blank=True, null=True)
  198. class Meta:
  199. managed = False
  200. db_table = 'link_rule_link'
  201.  
  202. class LinkSensorRoomLink(models.Model):
  203. sensor_room_link_sid = models.AutoField()
  204. room_bed_link_sid = models.IntegerField(blank=True, null=True)
  205. sensid = models.CharField(max_length=64, blank=True, null=True)
  206. sysdate = models.DateTimeField(blank=True, null=True)
  207. class Meta:
  208. managed = False
  209. db_table = 'link_sensor_room_link'
После исправления ключей, подключил модели к админке:
Листинг программы
  1. from devreg.models import DimEmployee
  2. from devreg.models import DimPatient
  3. from devreg.models import DimSensor
  4. from devreg.models import DirAction
  5. from devreg.models import DirDep
  6. from devreg.models import DirLpu
  7. from devreg.models import DirMsgDataAttr
  8. from devreg.models import DirPost
  9. from devreg.models import DirRole
  10. from devreg.models import DirSensorType
  11. from devreg.models import DirSpdul
  12. from devreg.models import FactActionAlarms
  13. from devreg.models import FactMsgData
  14. from devreg.models import LinkCondition
  15. from devreg.models import LinkEmpLink
  16. from devreg.models import LinkPatientLink
  17. from devreg.models import LinkRoomBedLink
  18. from devreg.models import LinkRuleLink
  19. from devreg.models import LinkSensorRoomLink
  20.  
  21. admin.site.register(DimEmployee)
  22. admin.site.register(DimPatient)
  23. admin.site.register(DimSensor)
  24. admin.site.register(DirAction)
  25. admin.site.register(DirDep)
  26. admin.site.register(DirLpu)
  27. admin.site.register(DirMsgDataAttr)
  28. admin.site.register(DirPost)
  29. admin.site.register(DirRole)
  30. admin.site.register(DirSensorType)
  31. admin.site.register(DirSpdul)
  32. admin.site.register(FactActionAlarms)
  33. admin.site.register(FactMsgData)
  34. admin.site.register(LinkCondition)
  35. admin.site.register(LinkEmpLink)
  36. admin.site.register(LinkPatientLink)
  37. admin.site.register(LinkRoomBedLink)
  38. admin.site.register(LinkRuleLink)
  39. admin.site.register(LinkSensorRoomLink)
В админке баз он не видит. Ага, нужно сделать миграцию, что бы он где-то на внутреннем уровне теперь эти модели проассоциировал с реальными таблицами, подумал я. Но это привело к созданию новых таблиц вида (имя проекта_имя таблицы). Из админки видно именно новые таблицы. Но мне как-то надо заставить его использовать существующие... как?

Решение задачи: «Использование готовой базы Djando»

textual
Листинг программы
  1. class DimSensor(models.Model):
  2.     sensid = models.CharField(primary_key=True, max_length=64)
  3.     sensor_type_sid = models.IntegerField(blank=True, null=True)
  4.     class Meta:
  5.         managed = False
  6.         db_table = 'dim_sensor'

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы