У меня есть устаревшая база данных с соглашениями об именах, отличных от django.Если у меня есть следующие (урезанные) модели:
class Registration(models.Model):
projectId=models.IntegerField(primary_key=True)
class Application(models.Model):
applicationId=models.IntegerField(primary_key=True)
registration=models.ForeignKey(Registration,db_column='projectId')
Экземпляр ForeignKey
вызывает создание свойства в Application
с именем registration_id
, но это неправильное имя для поля(У меня есть способ исправить это), и он не может быть использован в QuerySet
.
. Есть ли какой-либо способ использования поля id, предоставленного ForeignKey в модели приложения, вместоссылаться на него через регистрацию?
То есть.Я пишу много кода, как:
Application.objects.get(projectId=1234)
И не хочу записывать это как:
Application.objects.get(registration__projectId=1234)
или даже
Application.objects.get(registration__pk=1234)
Я немного удивлен, что:
Application.objects.get(registration_id=1234)
не работает ...
Также обратите внимание, я попытался определить столбец id как поле, а также внешний ключ, который работал для набора запросов, но вставляет жалобу при попытке вставить в один и тот же столбец дважды:
class Application(models.Model):
...
projectId=models.IntegerField()
...