Para obtener el id de un usuario me he basado de este
post Y este es mi views.py :
Código:
def subirvideo(request):
if request.method == 'POST':
formsub = VideoForm(request.POST)
if formsub.is_valid():
try:
_userid = request.user.id
id_usuario = User.objects.get(id=_userid)
except:
id_usuario = User.objects.get(id=-1)
guardar=formsub.save(commit=False)
guardar.usuario=id_usuario
guardar.save()
return HttpResponseRedirect('/')
else:
formsub = VideoForm()
return render_to_response('subirvideo.html',{'formsub':formsub},context_instance=RequestContext(request))
En esta parte id_usuario = User.objects.get(id=-1) puse el -1 para usuarios que no estan logueados .
En mi forms.py :
Código:
class VideoForm(forms.ModelForm):
class Meta:
model = Video
fields = ( 'titulo','actriz','descripcion','imagen','enlace_ver', 'pantalla' ,'categorias','nacionalidad','comentarios_user')
widgets = {
#'descripcion': forms.Textarea(attrs={'cols': 80, 'rows': 14,}),
'categorias': forms.CheckboxSelectMultiple(),
'nacionalidad':forms.RadioSelect(),
}
def __init__(self ,*args, **kwargs):
super(VideoForm, self).__init__(*args, **kwargs)
titulo_field = self.fields['titulo']
actriz_field=self.fields['actriz']
self.fields['titulo'] = forms.RegexField(EXPRE, label=titulo_field.label, max_length=titulo_field.max_length)
self.fields['actriz']=forms.RegexField(EXPRE,label=actriz_field.label,max_length=actriz_field.max_length)
El problema esta que no me esta guardando los valores de categorias que es un campo manytomany , y creo que el problema esta cuando hago esto:
Código:
guardar=formsub.save(commit=False)
guardar.usuario=id_usuario
guardar.save()
porque al incluir el campo usuario en el forms.py , solo dejo formsub.save(), y si me guarda los valores ,
De que otra manera puedo obtener el id del usuario y no me pase esto , ya he intentado las formas que plantean en el post que mencione arriba , pero no puede hacerlo , ya no se mas hacer para resolver esto espero me puedan ayudar