Home:ALL Converter>Django Channels Not working

Django Channels Not working

Ask Time:2017-07-07T15:47:39         Author:

Json Formatter

I have been following Django channels tutorial, but I am stuck on why my application is not working. Whenever I change the database through the django ORM, I am not getting any updates on my browser.

routing.py

from channels import route_class
from values.consumers import Secondmultiplexer

channel_routing = [
    route_class(Secondmultiplexer, path='^/stream2/?$')
]

models.py

from django.db import models
from channels.binding.websockets import WebsocketBinding


class SimpleStock(models.Model):
    ticker = models.CharField(max_length=30, primary_key=True)
    current_price = models.FloatField(default=0)


class SimpleStockBinding(WebsocketBinding):
    model = SimpleStock
    stream = "stocks"
    fields = ["ticker", "current_price"]

    @classmethod
    def group_names(cls, instance):
        return ["stocks-updates"]

    def has_permission(self, user, action, pk):
        return True

consumers.py

from channels.generic.websockets import WebsocketDemultiplexer

from .models import SimpleStockBinding

class Secondmultiplexer(WebsocketDemultiplexer):
    consumers = {
        "stocks": SimpleStockBinding.consumer,
    }

    groups = ["binding.values"]

index.html

{% extends "base.html" %}

{% block title %}Databinding Example{% endblock %}
{% block header_text %}Databinding Example{% endblock %}

{% block content %}


{% endblock %}

{% block extra_body %}
    <script>
        $(function () {
            var second_path = "/stream2/";

            console.log("Connecting to " + second_path);

            var secondWebSocketBridge = new channels.WebSocketBridge();

            secondWebSocketBridge.connect(second_path);
            secondWebSocketBridge.listen();


            secondWebSocketBridge.demultiplex('stocks',function(payload, streamName) {
                console.log(payload);
            });
        });
    </script>
{% endblock %}

asgi.py

import os
from channels.asgi import get_channel_layer
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "databinding.settings")
channel_layer = get_channel_layer()

Author:,eproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/44965342/django-channels-not-working
yy