Esto me está rompiendo la cabeza, les explico
Tengo 3 modelos en ManyToMany, User y Compound que ambos se van a relacionar en UserCompound, el problema que no se la forma correcta de hacer el save(), les paso el código de los modelos
Código Python:
Ver original
class Compound(models.Model): name = models.CharField(max_length=50) slug = models.SlugField() date = models.DateField(auto_now_add = True) user_compound = models.ManyToManyField(User, through='UserCompound', blank=True) class Meta: app_label = 'compound' db_table = 'compound'
Código Python:
Ver original
class UserCompound(models.Model): compound = models.ForeignKey(Compound) user = models.ForeignKey(User) role = models.ForeignKey(Role) class Meta: app_label = 'compound' db_table = 'auth_user_compound'
Para el modelo User estoy usando el que viene con django auth_user
Ahora bien, me gustaria conocer la mejor forma de que al crear un nuevo Compound se inserte el registro respectivo en en la tabla UserCompound
Actualmente lo logré asi
Código Python:
Ver original
compound_form = CompoundCreateForm(data) if compound_form.is_valid(): new_compound = compound_form.save() UserCompound.objects.create(user_id=request.user.id, compound_id=new_compound.pk)
Pero estuve leyendo cosas como save_m2m() y la funcion add(), pero no entendí como usarlas
Me gustaría saber la forma correcta en la que se hace esto
Mil gracias