Je travaille sur un projet qui nécessite que j'utilise une valeur contenue dans une variable de mon template view.py. J'ai besoin d'utiliser cette variable dans mon javascript. Est-ce que quelqu'un sait comment passer une variable de django à JS?Comment référencer une variable django en javascript?
Voici ma fonction dans views.py
@login_required
@never_cache_headers
def user_feed(request, user=None, extension=None):
# Ensure we have a user
if user is None:
user = request.user
prof = user.get_profile()
elif isinstance(user, basestring):
user = get_object_or_404(User, id=user)
# Build author list
author_ids = []
author_ids.append(user.id)
# Check if user if friend to profile being viewed
are_friends = Friendship.objects.are_friends(user, request.user)
# Determine Date
now = datetime.datetime.now()
today = now.date()
if now.time() < datetime.time(3):
start_dt = datetime.datetime.now() - datetime.timedelta(hours=settings.FEEDITEM_BUFFER_HOURS)
else:
start_dt = datetime.datetime(today.year, today.month, today.day)
# Build up the where query
where = []
if user.id != request.user.id:
where.append({'ping_type':'public'})
if are_friends:
where.append({'ping_type': 'friends_only'})
where.append({'ping_type': 'invite_only', 'invite_list': request.user.id})
where = {'$or': where}
else: where = {} # Vanity check - show all pings by author
where['author'] = { '$in' : author_ids }
where['starts'] = { "$gt":start_dt }
where['deleted'] = { "$ne": True }
# print "User View Where = ", where
feeditems, has_more = ds.Feed.feeditems(request, where)
feeditems = ds.FeedItem.prepare(feeditems)
friend_requested = FriendshipInvitation.objects.is_friend_requested(request.user, user)
if extension:
if extension == 'json':
return http.HttpResponse(json.dumps(feeditems, indent=2, default=json_handler),
mimetype='application/json')
else:
return render_to_response("social/feeditems_list.html", {
'feeditems':feeditems,
'user':user,
'has_more':has_more,
'section':'user_feed',
'are_friends':are_friends,
'friend_requested':friend_requested,
}, request)
J'ai besoin essentiellement de passer request.user.id ou user.id à Javascript.
EDIT
En fait, je préférerais passer à javascript comme son propre petit élément tableau JSON, si c'est possible
Ou , si vous utilisez jQuery, regardez la méthode .data() pour stocker les données dans le DOM, plutôt que de le déclarer comme une variable globale. Mais, vraiment, le ciel ne tombera pas même si vous utilisez un global. Je définirais par défaut: 'null' cependant, pour le rendre plus facile à manipuler dans JS –
Je reçois une erreur d'analyse avec cette solution: ID de propriété non valide [Rompre sur cette erreur] var userId = {{request.user.id | par défaut: 0}}; \ n – Sachin
Y at-il quelque chose que je dois faire du côté django pour m'assurer qu'il est disponible pour être référencé dans JS? – Sachin