У меня есть API, который имеет две модели. Эти модели я бы хотел связать с внешним ключом. Затем я хочу отправить данные, более конкретно, я хочу отправить строку. Если эта строка соответствует имени внешнего ключа, я хочу создать экземпляр. Вот так:
class Simulation(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, default=1)
project = models.ForeignKey(Project, on_delete=models.CASCADE,default=1, related_name="projects")
class Project(models.Model):
project_name = models.CharField(max_length=120)
def __str__(self):
return self.project_name
Я отправляю данные так:
def test_api_local(method='get', data={}):
r = requests.request(method, ENDPOINT , data=data, headers=headers)
return r
test_api_local(method="post", data={"user":2, "project":1 })
Хорошо, это работает. Вот так я создаю экземпляр с данными. Но то, что я хотел бы сделать, - это отправить имя моего проекта в виде строки и создать объект моделирования, в котором есть имя моего проекта. Но сейчас я могу отправлять только целые числа.
Я попытался установить имя проекта в качестве первичного ключа, но получаю ошибку с несколькими ключами. Я попытался установить его на уникальный, но он также не работает.
Я прочитал, что не рекомендуется использовать строки в качестве внешнего ключа, поскольку он нарушает общие внешние ключи. Но есть ли способ сделать это? Я думаю, это должно как-то сработать, но я больше не знаю ...
Любая помощь высоко ценится! Заранее спасибо!