Господа программисты, подскажите как мне сделать отношение oneToMany через ForeignKey, привязываясь не к конкретной модели, а к ее полю?
class TechType(models.Model):
type_name = models.CharField(max_length=100, verbose_name='Вид техники', unique=True)
def __str__(self):
return self.type_name
class TechUnit(models.Model):
inner_id = models.CharField(max_length=100, verbose_name='Внутренний номер', unique=True)
tech_type = models.ForeignKey(TechType, on_delete=models.CASCADE, verbose_name='Вид техники')
def __str__(self):
return self.inner_id
Первым делом я создаю 4 экземпляра класса TechType.
Далее я создаю экземпляры класса TechUnit: ввожу его Inner_id и выбираю из выпадающего списка к какому типу техники он относится в TechType. Выбор происходит нормально, в выпадающем списке появляются ровно те категории техники, которые я завел на предыдущем шаге.
Однако далее я начал ловить ошибки, связанные с приведением текста к строке и долго не мог понять в чем причина, пока случайно не создал новый TechType под названием 4 и ошибка пропала. Мой шаблон загрузился и выдал мне нужную информацию. Залез в БД и нашел занятную вещь( см. скриншот). Мой TechUnit в БД привязан к id TechType, а не к полю TechType type_name. К примеру, TechUnit с inner_id 114 привязан к TechType Pallet_truck, а в БД он привязан к tech_type_id = 4. Как мне привязаться к полю type_name у класса TechType???