Estoy trabajando para guardar en el mismo formulario dos tablas - teniendo una relación m2m. No tengo éxito, mi error persiste con algo como: No se pueden establecer valores en ManyToManyField que especifique un modelo intermediario. Use el Administrador de membresía en su lugar donde la membresía es mi 'tabla de acceso'.django No se pueden establecer valores en ManyToManyField que especifique un modelo intermediario. Use Manager en su lugar
mi código:
def save_classroom(request):
classroom_instance = Classroom()
if request.method == 'POST':
form = ClassroomForm(request.POST, request.FILES, user = request.user)
if form.is_valid():
new_obj = form.save(commit=False)
new_obj.user = request.user
new_obj.save()
membership = Membership(member = request.user,classroom=new_obj)
membership.save()
form.save_m2m()
return HttpResponseRedirect('.')
else:
form = ClassroomForm(user = request.user)
return render_to_response('classroom/classroom_form.html', {
'form': form,
},
context_instance=RequestContext(request))
mis modelos:
class Classroom(models.Model):
user = models.ForeignKey(User, related_name = 'classroom_creator')
classname = models.CharField(max_length=140, unique = True)
date = models.DateTimeField(auto_now=True)
open_class = models.BooleanField(default=True)
members = models.ManyToManyField(User,related_name="list of invited members", through = 'Membership')
class Membership(models.Model):
accept = models.BooleanField(default=False)
date = models.DateTimeField(auto_now = True)
classroom = models.ForeignKey(Classroom, related_name = 'classroom_membership')
member = models.ForeignKey(User, related_name = 'user_membership')
¿Dónde estoy mal?
Sus modelos son ...? –
ahora estoy editando y agregando los modelos. ¡Gracias! – dana
La pregunta relacionada tiene una solución en el nivel ORM: http://stackoverflow.com/questions/22964448/add-for-manytomanyfield-which-specifies-an-intermediary-model – guettli