mirror of
https://github.com/jazzband/django-ddp.git
synced 2026-05-09 08:04:46 +00:00
Merge fa15d17e9a into 1e1954b06f
This commit is contained in:
commit
696151371c
2 changed files with 16 additions and 2 deletions
12
dddp/api.py
12
dddp/api.py
|
|
@ -187,6 +187,8 @@ class CollectionMeta(APIMeta):
|
|||
|
||||
"""DDP Collection metaclass."""
|
||||
|
||||
model_name_map = {}
|
||||
|
||||
def __new__(mcs, name, bases, attrs):
|
||||
"""Create a new Collection class."""
|
||||
attrs.update(
|
||||
|
|
@ -197,6 +199,10 @@ class CollectionMeta(APIMeta):
|
|||
attrs.update(
|
||||
name=model_name(model),
|
||||
)
|
||||
if model and attrs.get('name'):
|
||||
if model._meta.label_lower:
|
||||
model = model._meta.label_lower
|
||||
CollectionMeta.model_name_map.update({model: attrs.get('name')})
|
||||
return super(CollectionMeta, mcs).__new__(mcs, name, bases, attrs)
|
||||
|
||||
|
||||
|
|
@ -562,7 +568,11 @@ class DDP(APIMixin):
|
|||
|
||||
def get_col_by_name(self, name):
|
||||
"""Return collection instance for given name."""
|
||||
return self._registry[COLLECTION_PATH_FORMAT.format(name=name)]
|
||||
try:
|
||||
return self._registry[COLLECTION_PATH_FORMAT.format(name=name)]
|
||||
except:
|
||||
name = Collection.model_name_map[str(name)]
|
||||
return self._registry[COLLECTION_PATH_FORMAT.format(name=name)]
|
||||
|
||||
def get_pub_by_name(self, name):
|
||||
"""Return publication instance for given name."""
|
||||
|
|
|
|||
|
|
@ -228,8 +228,12 @@ class AleaIdField(models.CharField):
|
|||
def get_seeded_value(self, instance):
|
||||
"""Generate a syncronised value."""
|
||||
# Django model._meta is public API -> pylint: disable=W0212
|
||||
if hasattr(instance, "meteor_collection"):
|
||||
name = instance.meteor_collection
|
||||
else:
|
||||
name = instance._meta
|
||||
return meteor_random_id(
|
||||
'/collection/%s' % instance._meta, self.max_length,
|
||||
'/collection/%s' % name, self.max_length,
|
||||
)
|
||||
|
||||
def get_pk_value_on_save(self, instance):
|
||||
|
|
|
|||
Loading…
Reference in a new issue