假设我有一个模型,其中一个字段是ForeignKey类型。
class House(models.Model):
house_name = models.CharField(max_length=120)
tenant = models.ForeignKey('Tenant',on_delete=models.CASCADE)
class Tenant(models.Model):
name = models.charField(max_length=120)
married = models.BooleanField(default=False)
phone = models.CharField(max_length=10)
我想使用WebsocketBinding绑定模型House的事件。所以我写下了以下内容
class HouseBinding(WebsocketBinding):
model = House
stream= "houseStream"
fields = ["__all__"]
@classmethod
def group_names(cls, *args, **kwargs):
return ["binding.values"]
def has_permission(self, user, action, pk):
return True
现在每当创建或更新或删除House模型的对象时,有效负载就会发送到连接的客户端。我在routing.py中添加了Demultiplexer路由,并在consumers.py中添加了WebsocketDemultiplexer类。现在假设我是在服务器端使用具有如house_name,tenant_name,tenant_married_status和tenant_phone_number的字段的形式创建,更新和删除房屋模型的对象。
我正在使用以下代码在客户端监听这些事件。
var webSocketBridge = new channels.WebSocketBridge();
webSocketBridge.connect(ws_path);
webSocketBridge.listen();
webSocketBridge.demultiplex('houseStream', function(payload, streamName)
{
console.log(payload.data.house_name); //I am getting correct value for this.
console.log(payload.data.tenant.name); //getting 'undefined' for this
console.log(payload.data.tenant.married); //getting 'undefined' for this
console.log(payload.data.tenant.phone); //getting 'undefined' for this
});
能否请您告诉我为什么每次尝试获取“ Tenant”模型中存储的任何值时都会得到“ undefined”。如果我做错了事或有其他处理这些情况的方法,请作为我的指导。我在互联网上找不到任何资源来解决此问题
预先感谢