LINUX.ORG.RU

Django many-to-one field с уникальной парой внешних ключей

 , , ,


0

1

Доброе всем время суток. Есть две модели:

class DeviceType(models.Model):
 model = models.CharField(max_length=16)
 board = models.CharField(max_length=20)
 class Meta:
  unique_together = ('model', 'board',)
 def __str__(self):
  return self.model+' ('+self.board+')'

class device(models.Model):
 model = models.ForeignKey(model, related_name='devmodel', on_delete=models.PROTECT)
 board = models.ForeignKey(board, related_name='devboard', on_delete=models.PROTECT)

Поясню devicetype тип устройства поле model для него уникально, поле board может совпадать. Задача состоит в установлении связи между объектами так, чтобы при вводе device.model - в поле device.board автоматически подтягивалось значение из DeviceType.board. Возможно вопрос элементарный, но к сожалению, не смог найти на него ответа.

Если я правильно понял вопрос, то ты не понимаешь, как устроены реляционные базы. Почитай про них и про нормальные формы. В твоём случае должно быть что-то вроде

class Device(models.Model):
    device = models.ForeignKey(DeviceType, ...)

И таким образом получится отношение многие-к-одному из Device на DeviceType. А по some_device.device.model и some_device.device.brand ты сможешь обращаться к соответствующим полям таблицы DeviceType и не нужно ничего никуда автоматически подтягивать, всё и так на своих местах.

Что такое stbModel и зачем оно тут я не понял.

grazor ()