A: 

you can access the current user, and so their session using threadlocals middleware

http://code.arcs.org.au/gitorious/django/django-andsome/blobs/ee8447e3dad2da9383ff701ec640b44cd50d2b0a/middleware/threadlocals.py

but keep in mind:

http://code.djangoproject.com/wiki/CookBookThreadlocalsAndUser

There might be better solutions to your problem. Maybe you'd like to elaborate why you need request.session on model level?

UPDATE:

since you explicitly call some method - probably from a view - why don't you just put the request.user as parameter to your html method?

models.py:

def html(self, user):
    your code...

views.py:

yourmodel.html(request.user)

UPDATE to your MEGA UPDATE:

This is exactly what {% include %} is for:

in your first template do this:

{% for discussion in discussions %}
    {% include "discussion.html" }}
{% endfor %}

and the second template has request.user.id in its namespace:

{% if request.session.user.id not in discussion.users_voted %}
  user not in list!
{% endif %}     
mawimawi
I'm using the model to Parse a template, but i need to pass a context to it. However when the template gets parsed i do not have access to request.session (I'm comparing a request.session value to another value)
dotty
See update to OP.
dotty
See mega update for a run down on what i want to achieve.
dotty
+2  A: 

Why don't you use Django's render_to_string inside a view, which would have request happily available to it, and avoid model method altogether?

UPDATE: after skimming your mega update, you should look into Django's inclusion tags and use the data from the model to fill a template, not use a model to render the template. Keep your model and your template separate - Django is an MVT / MCV framework for good reason :)

stevejalim