¿Cómo hago que el campo de muchos a muchos sea opcional en Django?

Resuelto DZ. asked hace 14 años • 2 respuestas

Cuando tiene una relación de muchos a muchos ( related_name, no through) y está intentando utilizar la interfaz de administración, debe ingresar una de las relaciones, aunque no es necesario que exista para crear la primera entrada.

Estoy creando una aplicación que es un organizador de eventos. EventImagínese que tuviéramos Groupmodelos vinculados con una relación de muchos a muchos.

Django related_namecrea otra tabla con los índices de las otras dos tablas.
Pero no veo ninguna razón por la que deba completarse esta tabla adicional.

Si trabajo con la base de datos a través de phpMyAdmin, puedo crear un Groupsin registrarlo Event, ya que la conexión entre los dos es solo a través de una tabla separada y no se aplica el valor de la base de datos en un nivel determinado.

¿Cómo hago para que la interfaz de administración se dé cuenta?
¿Cómo hago que el campo muchos a muchos sea opcional en Django?

DZ. avatar Mar 27 '10 20:03 DZ.
Aceptado

Si desea poder especificar la relación ManyToMany sin que sea necesario, simplemente use blank=True:

class Group(models.Model):
    ...
    events = models.ManyToManyField(Event, blank=True)
Ludwik Trammer avatar Mar 27 '2010 15:03 Ludwik Trammer

Si la respuesta de Ludwik no resuelve el problema, establezca requerido en falso también en el serializador:

class RecipeDetailSerializer(RecipeSerializer):
    """Recipe detail serializer"""
    tags = TagSerializer(many=True, required=False)
Solomon Botchway avatar Dec 11 '2022 14:12 Solomon Botchway