Использование значения атрибута объекта django в функции Javascript - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть модель с именем VisitorInfo в models.py, которая выглядит следующим образом:

class VisitorInfo(models.Model):
    #To maintain clarity i am not showing all the fields.

    visitor_id      = models.CharField(max_length=120)
    pages_visited   = models.ManyToManyField(Page,blank=True)
    time_zone       = models.CharField(max_length=120, null= True, blank=True)
    ip              = models.CharField(max_length=120, null= True, blank=True)
    device_type     = models.CharField(max_length=120, null=True)

Ниже показано, где я использую эту модель.

class Live_Now(LoginRequiredMixin, TemplateView):
    template_name = 'dashboard/live_now.html'

def get_context_data(self, **kwargs):
    context = super(Live_Now, self).get_context_data(**kwargs)
    search = self.request.GET.get('q')

    if search:
        if VisitorInfo.objects.filter(Q_filter).filter(active=True).count() >0:
            context['list_no'] = VisitorInfo.objects.filter(Q_filter).filter(active=True)
        else:
            context['list_no'] = "N"
    return context

Что мне нужночтобы сделать это, как только загрузится страница live_now.html и запустится представление Live_Now, откроется новая вкладка со следующим URL.

url = 54.161.109.227:5000/visitor_id 

Я знаю, что для открытия новой вкладки мне нужно записать сценарий в live_now.HTML, который выглядит следующим образом.

<script type='text/javascript>
window.open(url); // Above written url
</script>

Но как мне получить visitor_id посетителя во время выполнения.Выборка visitor_id - это задача для функции python, а открытие новой вкладки - это функция javascript.Как передать значение переменной python в программе javascript?

В настоящее время я получаю visitor_id первого посетителя в посетителях, и я написал следующую функцию для этого.

def myfunc():
    visitors= VisitorInfo.objects.all()
    for visitor in visitors[:1]:
        visitorId = visitor.visitor_id
        return str(visitorId)

1 Ответ

0 голосов
/ 09 ноября 2018

Ты делаешь это намного сложнее, чем нужно. Если вам нужно, чтобы у вашего JS было определенное значение, передайте его туда.

def get_context_data(self, **kwargs):
    ... existing code ...
    context['visitor_id'] = Visitor.objects.first().user_id
    return context

...

url = "54.161.109.227:5000/{{ visitor_id }}";
window.open(url)

Конечно, вы можете так же легко передать весь объект Visitor в шаблон и выполнить {{ visitor.user_id }}, это ваше дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...