Я пытаюсь добавить модель UserFilter
с внешним ключом modelgroup
, указывающим на таблицу Modelgroup
, которая не имеет стандартного поля идентификатора.
class Modelgroup(models.Model):
modelgroup = models.CharField(max_length=64, primary_key=True, db_column='modelgroup')
class UserFilter(models.Model):
user = models.ForeignKey(User, models.DO_NOTHING)
modelgroup = models.ForeignKey(Modelgroup, models.DO_NOTHING, \
to_field='modelgroup', db_column='modelgroup')
Когда я запускаю manage.py makemigrations
в этом коде я получаю
operations = [
migrations.CreateModel(
name='UserFilter',
fields=[
...
('modelgroup', models.ForeignKey(db_column='modelgroup', on_delete=django.db.models.deletion.DO_NOTHING, to='core.Modelgroup')),
...
],
),
...
]
В котором отсутствует параметр to_field
. И когда я запускаю manage.py migrate
на нем, я получаю
django.db.utils.ProgrammingError: column "id" referenced in foreign key constraint does not exist
Важно
Когда я заменяю primary_key=True
на unique=True
, параметр to_field
работает как ожидается.
Есть мысли?