web-dev-qa-db-fra.com

Objet modèle Django avec création de clé étrangère

Salut Supposons que j'ai une classe de modèle simple comme celle-ci:

class TestModel(models.Model):
    testkey = models.ForeignKey(TestModel2)
    ...

Lorsque je crée un objet TestModel, je dois lui transmettre une instance de l'objet TestModel2 pour le créer:

testkey =TestModel2.objects.get(id=...)
TestModel.objects.create(testkey=testkey)

Cela aboutit à 2 requêtes sur la base de données, je suppose, et j'ai une liste d'ID de clés étrangères avec lesquelles j'ai besoin de créer des objets.

Est-il possible de créer des objets avec des clés étrangères sans récupérer initialement les objets de clés étrangères?

41
dragoon

Ce que vous cherchez, c’est:

TestModel.objects.create(testkey_id=1)
65
sneeu

Dans get_or_create, il échouera dans get. Donc, pour que get_or_create fonctionne, la solution est la suivante:

TestModel.objects.get_or_create(testkey=TestModel2(id=1))

Référence: https://code.djangoproject.com/ticket/13915

0
user3260373