mirror of
https://github.com/django/daphne.git
synced 2025-04-20 08:42:18 +03:00
Fix member serialization in WebsocketBindingWithMembers (#292)
* Fix member serialization in WebsocketBindingWithMembers * pep fixes * allow usage of 'dot'-notation in send_members * replace dots for dictionary * single quotes
This commit is contained in:
parent
f682298341
commit
0f1ac3d08b
|
@ -147,10 +147,17 @@ class WebsocketBindingWithMembers(WebsocketBinding):
|
|||
|
||||
def serialize_data(self, instance):
|
||||
data = super(WebsocketBindingWithMembers, self).serialize_data(instance)
|
||||
member_data = {}
|
||||
for m in self.send_members:
|
||||
member = getattr(instance, m)
|
||||
member = instance
|
||||
for s in m.split('.'):
|
||||
member = getattr(member, s)
|
||||
if callable(member):
|
||||
data[m] = self.encoder.encode(member())
|
||||
member_data[m.replace('.', '__')] = member()
|
||||
else:
|
||||
data[m] = self.encoder.encode(member)
|
||||
member_data[m.replace('.', '__')] = member
|
||||
member_data = json.loads(self.encoder.encode(member_data))
|
||||
# the update never overwrites any value from data,
|
||||
# because an object can't have two attributes with the same name
|
||||
data.update(member_data)
|
||||
return data
|
||||
|
|
Loading…
Reference in New Issue
Block a user