Voy a tratar de responder a su problema real, porque lo que está preguntando en la pregunta es un problema con la solución propuesta, que como muchos han señalado no es realmente ideal.
En los comentarios que mencionar esto:
Voy a tratar de explicar .. Así tenemos 2 modelos: usuario y libro. Un usuario tiene un libro llamado "Titanic" con cierto contenido. Ahora, otro usuario quiere una relación con ese libro también. Pero, el segundo usuario quiere exactamente el mismo libro , pero debería llamarse "Barco se está yendo por debajo". Copiaría el libro , y lo cambiaría de nombre. - Lo sé, también podría poner el contenido del libro en otro modelo, pero mi modelo es un poco más complejo.
Parece que tienes tres cosas a la pista:
- Usuarios
- sus libros
- Algunas notas a medida que los usuarios tienen sobre su libro "propiedad".
Para cada Book
, almacenar su información común, por ejemplo:
class Author(models.Model):
name = models.CharField(max_length=50)
email = models.EmailField()
def __unicode__(self):
return unicode(self.name)
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.ManyToMany(Author)
isbn = models.CharField(max_length=13)
# and so on
def __unicode__(self):
return unicode(self.title)
Ahora, es necesario almacenar libro -> relación del usuario, como por ejemplo un usuario puede tener muchos libros, dos usuarios pueden poseer el mismo libro, con su propia metainformación adjunta.
class BookClub(models.Model):
username = models.ForeignKey(User)
book = models.ForeignKey(Book)
comments = models.TextField()
Si estructurar sus modelos así, usted será capaz de hacer preguntas como: "¿Cuántos libros tiene cada miembro"
- "¿Cuál es el libro más popular?"
- "¿Cuál es el libro menos popular?"
- "¿Cuál es el autor más popular?"
"Tengo que copiar en su conjunto django-modelo"? ¿Quiere decir clonar una instancia del modelo, es decir, clonar una fila en una base de datos? Esto es, generalmente, una idea terrible. ¿Por qué estarías clonando filas de bases de datos? El objetivo del modelo de datos relacional es hacer que la clonación sea innecesaria. ¿Qué estás haciendo? –
Sí, tiene razón, necesito copiar una instancia de un modelo ... Quiero copiar una instancia con todos sus atributos y relaciones con otros modelos ... Ya sabes, pensé en la redundancia y esas cosas, pero para mi problema, es la mejor manera de copiarlo. – Peter
@Peter: "pero para mi problema, es la mejor manera de copiarlo". Lo siento, pero no lo es. No puede ser. Usted tiene "relaciones" en la base de datos que lo hacen completamente innecesario. Quizás necesite arreglar su modelo de datos antes de ir demasiado lejos en este camino. –