Есть ли способ установить отношения внешнего ключа с использованием целочисленного идентификатора модели? Это было бы в целях оптимизации.
Например, предположим, что у меня есть модель сотрудников:
class Employee(models.Model):
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
type = models.ForeignKey('EmployeeType')
и
EmployeeType(models.Model):
type = models.CharField(max_length=100)
Мне нужна гибкость наличия неограниченного количества типов сотрудников, но в развернутом приложении, вероятно, будет только один тип, поэтому мне интересно, есть ли способ жестко закодировать идентификатор и установить отношения таким образом. Таким образом я могу избежать вызова db для получения сначала объекта EmployeeType.
источник
type
поле записывается в базу данных, если выtype
впоследствии получите доступ к свойству, оно не отражает изменения. В коде сказано, что это не удастсяassert(employe.type.id == 4)
.Альтернатива, использующая create для создания объекта и сохранения его в базе данных в одной строке:
источник