python tipos models - ¿Cómo uso un diccionario para actualizar los campos en los modelos de Django?




1 Answers

Si sabes que quieres crearlo:

Book.objects.create(**d)

Suponiendo que necesita verificar una instancia existente, puede encontrarla con get o create:

instance, created = Book.objects.get_or_create(slug=slug, defaults=d)
if not created:
    for attr, value in d.iteritems(): 
        setattr(instance, attr, value)
    instance.save()

Como mencioné en otra respuesta, también puede usar la función de update en el administrador de conjuntos de consultas, pero creo que no enviará ninguna señal (lo cual puede no importarle si no los está usando). Sin embargo, probablemente no deberías usarlo para alterar un solo objeto:

Book.objects.filter(id=id).update()
example eliminar metodos

Supongamos que tengo un modelo como este:

class Book(models.Model):
    num_pages = ...
    author = ...
    date = ...

¿Puedo crear un diccionario y luego insertar o actualizar el modelo?

d = {"num_pages":40, author:"Jack", date:"3324"}



Related