Взаимное расположение таблиц и связь manytomany - Python
Формулировка задачи:
Итак есть необходимость в админке реализовать возможность добавление многие ко многим.
База у меня уже была готовая (Постгре)
Модели:
Из-за взаимосвязей с другими таблицами и друг другом никак не удается их расположить так, что бы все работало - все время django не видит какое-то модели....
Может я что-то не так делаю, добавил лишних полей?
sensors_id и link_id - мои поля, которые я добавил в модели что бы реализовать many-to-many...
Решение задачи: «Взаимное расположение таблиц и связь manytomany»
textual
Листинг программы
class DimSensor(models.Model): sensid = models.CharField(primary_key=True, max_length=64) sensor_type_sid = models.ForeignKey('DirSensorType', db_column = 'sensor_type_sid') link_id = models.ManyToManyField('LinkRoomBedLink', through='LinkSensorRoomLink', through_fields=('sensid','room_bed_link_sid'), blank=True, null=True) def __unicode__(self): return self.sensid class Meta: managed = False db_table = 'dim_sensor' verbose_name_plural = "Список датчиков" class LinkRoomBedLink(models.Model): room_bed_link_sid = models.IntegerField(primary_key=True) lpu_id = models.ForeignKey('DirLpu', db_column = 'lpu_id', blank=True, null=True) dep_sid = models.ForeignKey('DirDep', db_column = 'dep_sid', blank=True, null=True) sensors_id = models.ManyToManyField('DimSensor', through='LinkSensorRoomLink', through_fields=('room_bed_link_sid', 'sensid'), blank=True, null=True) room_num = models.CharField(max_length=64, blank=True, null=True) bed_num = models.CharField(max_length=64, blank=True, null=True) sysdate = models.DateTimeField(blank=True, null=True) def __unicode__(self): return self.bed_num class Meta: managed = False db_table = 'link_room_bed_link' verbose_name_plural = "Палаты и койки" class LinkSensorRoomLink(models.Model): sensor_room_link_sid = models.IntegerField(primary_key=True) room_bed_link_sid = models.ForeignKey('LinkRoomBedLink', db_column = 'room_bed_link_sid') sensid = models.ForeignKey('DimSensor', db_column = 'sensid') sysdate = models.DateTimeField(blank=True, null=True) class Meta: managed = False db_table = 'link_sensor_room_link' verbose_name_plural = "Связи датчиков"
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д