Django ForeignKey Какое поле? - PullRequest
0 голосов
/ 20 апреля 2020

Я только начал изучать Django, и одна вещь в моделях об ForeignKey была мне неясна. Допустим, у меня есть одна модель, подобная этой:

class Webpage(models.Model):
    name = models.CharField(max_length=264, unique=True)
    url = models.URLField(unique=True)
    name2 = models.CharField(max_length=264, unique=True)

class Records(models.Model):
    site = models.ForeignKey(Webpage)

Так что при создании записи записей для тестирования я вижу, что ForeignKey ссылается на поле Имя веб-страницы. Мое замешательство, почему именно имя? Как я знаю, ForeignKey ссылается на первичный ключ, и если вы не даете атрибуту primary_key для каких-либо полей, он создаст поле 'id' и сделает его первичным ключом. Тогда почему бы не поле «id», а «name».

Извините, если это повторный вопрос, я просто не смог найти ответ.

1 Ответ

0 голосов
/ 20 апреля 2020

@ Орхан Рустамли Если вы пытаетесь перечислить все свои записи и получить имя веб-страницы, я думаю, это потому, что ваш метод печати в классе веб-страниц настроен на возвращение имени атрибута. если вы хотите вернуть идентификатор, вы установите функцию возврата следующим образом:

веб-страница класса (models.Model): pass def str (self): return self.id

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