through one manytoonerel many form example python django django-models many-to-many

python - one - Django Many-to-Many(m2m) Relación con el mismo modelo



many to many filter django (2)

Técnicamente, estoy bastante seguro de que "MyUser" o "self" funcionarán, siempre que sea una cadena en cualquier caso. Simplemente no puedes pasar MyUser , la clase real.

Sin embargo, los documentos siempre usan "self". Usar "self" no solo es más explícito sobre lo que está sucediendo realmente, sino que es impermeable a los cambios de nombre de clase. Por ejemplo, si más adelante cambió MyUser a SomethingElse , también necesitaría actualizar cualquier referencia a "MyUser". El problema es que, dado que se trata de una cadena, su IDE no lo alertará del error, por lo que hay una mayor posibilidad de que se lo pierda. Usar "self" funcionará sin importar el nombre de la clase ahora o en el futuro.

Me gustaría crear una relación de muchos a muchos desde y hacia un objeto de clase de usuario.

Tengo algo como esto:

class MyUser(models.Model): ... blocked_users = models.ManyToManyField(MyUser, blank=True, null=True)

La pregunta es si puedo usar la referencia de clase dentro de sí misma. ¿O tengo que usar "self" insead de "MyUser" en ManyToManyField ? ¿O hay otra (y mejor) forma de hacerlo?


class MyUser(models.Model): ... blocked_users = models.ManyToManyField("self", blank=True)