Wenn Sie wissen, dass Sie es schaffen:
Book.objects.create(**fields)
Sie eine vorhandene Instanz überprüfen müssen Angenommen, können Sie es mit get oder erstellen finden:
instance, created = Book.objects.get_or_create(slug=slug, defaults=fields)
if not created:
for attr, value in fields.iteritems():
setattr(instance, attr, value)
instance.save()
Wie in anderen erwähnten Antwort, Sie können auch die Funktion update
auf den Queryset-Manager verwenden, aber ich glaube, dass keine Signale gesendet werden (was für Sie keine Rolle spielt, wenn Sie sie nicht verwenden). Allerdings sollten Sie wahrscheinlich verwenden Sie es nicht ein einzelnes Objekt zu ändern:
Book.objects.filter(id=id).update(**fields)
Sie meinen, dass es erstellen wird, wenn in der Datenbank kein Feld mit Index ist und aktualisieren, wenn es ein Feld mit diesem Index gibt? Also können wir es update_or_create nennen? – Pol
Das ist richtig. –
Oh Mann !!! Ich habe bereits meine Methode von create_or_update beendet ... Cose ich fand artikel, dass es keine Methode erstellen oder aktualisieren in Django .. Es gibt artikel: http://blog.roseman.org.uk/2010/03/9/easy- create-or-update/so sein falscher Artikel? – Pol