Как сделать имя пользователя внешним ключом другой модели в django - PullRequest
0 голосов
/ 26 сентября 2019

Я очень новичок в Джанго.Я хочу связать модель, которая имеет 2 поля «имя пользователя» и «пароль».Я хочу сделать поле 'username' как Foreign в другой модели.Но в соответствии с Django мы можем передать только весь объект модели, который называется его внешним ключом.

я где-то ошибаюсь?пожалуйста, дайте мне какое-нибудь решение относительно этой основной проблемы.

1 Ответ

0 голосов
/ 27 сентября 2019

Нет, вы можете ссылаться на любое уникальное поле модели Django.Поэтому, если ваши модели выглядят так:

class Target(models.Model):
    name = models.CharField(max_length=128<b>, unique=True</b>)

class SourceModel(models.Model):
    target = models.ForeignKey(Target<b>, to_field='name'</b>, on_delete=models.CASCADE)

Вы можете присвоить значение целевого столбца для target_id.Например:

Target.objects.create(name='target1')
SourceModel.objects.create(target_id='target1')

Таким образом, вам не нужно передавать сам объект Target.Вы можете использовать поле &hellip;_id "twin", чтобы использовать значение целевого столбца.База данных обычно обеспечивает ссылочную целостность и, таким образом, предотвращает передачу несуществующего значения в столбец внешнего ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...