diff --git a/redisco/models/base.py b/redisco/models/base.py index 4167000..7ff3da1 100644 --- a/redisco/models/base.py +++ b/redisco/models/base.py @@ -86,7 +86,7 @@ def _initialize_counters(model_class, name, bases, attrs): def _initialize_key(model_class, name): """Initializes the key of the model.""" - model_class._key = Key(name) + model_class._key = Key(model_class._meta['key'] or name) def _initialize_manager(model_class): @@ -168,7 +168,7 @@ def is_valid(self): def validate(self): """Overriden in the model class. - + Do custom validation here. Add tuples to self._errors. Example: diff --git a/tests/models.py b/tests/models.py index 19f2fd5..48a795f 100644 --- a/tests/models.py +++ b/tests/models.py @@ -212,7 +212,7 @@ def test_exclude(self): .exclude(last_name="Mommy")) self.assertEqual(3, len(persons)) - + def test_first(self): Person.objects.create(first_name="Granny", last_name="Goose") Person.objects.create(first_name="Clark", last_name="Kent") @@ -501,6 +501,20 @@ def test_get_or_create(self): self.assertEqual('7', p.id) + def test_customizable_key(self): + class Person(models.Model): + name = models.CharField() + + class Meta: + key = 'People' + + p = Person(name="Clark Kent") + self.assert_(p.is_valid()) + self.assert_(p.save()) + + self.assert_('1' in self.client.smembers('People:all')) + + class Event(models.Model): name = models.CharField(required=True) date = models.DateField(required=True)