¿Cómo hago que el campo de muchos a muchos sea opcional en Django?
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. Event
Imagínese que tuviéramos Group
modelos vinculados con una relación de muchos a muchos.
Django related_name
crea 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 Group
sin 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?
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)
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)