Взаимное расположение таблиц и связь 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 = "Связи датчиков"