Django отношения внешнего ключа в проблеме model.py - PullRequest
0 голосов
/ 10 июля 2020

Я новичок в django и не знаю, как решить проблему (Google и стек не «помогли» / я не понял).

Это то, что я хочу получить на выходе : введите описание изображения здесь

Function.py

def test():
....
return(author, title, view....)

Models.py

class Pers(models.Model):
author = models.CharField(max_length=50)

class Title(models.Model):
authors = models.ForeignKey('Pers', on.delete=models.CASCADE)
title = models.CharField(max_length=20)
view = models.CharField(max_length=10) 

p = test()
t = Pers(author = p[0])
t.save()

z = test()
y = Title(authors = z[0], title = z[1], view = z[2]
y.save()

Моя функция ( Function.py ) работает нормально, но у меня проблемы с банк данных. Я могу заполнить Pers -таблицу «DJ ES», но я хочу, чтобы это было только один раз (ID[0] = DJ ES, ID[1] = MAX VA и так далее). В моей таблице я умножаю DJ ES (ID[0] = DJ ES, ID[1] = DJ ES, ID[2] = DJ ES, ...).

И я не могу сохранить DJ ES в свой Title -таблица. Моя последняя ошибка: ValueError: Cannot assign "'DJ ES'": "Title.authors" must be a "Pers" instance.

Ответы [ 2 ]

0 голосов
/ 10 июля 2020

В Django, если у вас есть отношения ForeignKey, в вашем случае авторы являются экземплярами лиц, поэтому, если вы хотите создать Заголовок, вам нужно сначала получить экземпляр человека: person = Pers.objects.get(pk=.. or author=..), а затем Title(authors=person, ...)

0 голосов
/ 10 июля 2020

Изменено «Перс» на Перс без одинарных кавычек. например

authors = models.ForeignKey(Pers, on.delete=models.CASCADE)

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