git.ithinksw.org
/
philo.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8c6ffb8
)
Added model validation to Pages; for a page to be valid, its related template must...
author
Stephen Burrows
<stephen.r.burrows@gmail.com>
Tue, 19 Oct 2010 14:49:59 +0000
(10:49 -0400)
committer
Stephen Burrows
<stephen.r.burrows@gmail.com>
Tue, 19 Oct 2010 14:54:29 +0000
(10:54 -0400)
models/pages.py
patch
|
blob
|
history
diff --git
a/models/pages.py
b/models/pages.py
index
323aeb8
..
d6d4b10
100644
(file)
--- a/
models/pages.py
+++ b/
models/pages.py
@@
-2,6
+2,7
@@
from django.conf import settings
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
from django.conf import settings
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic
+from django.core.exceptions import ValidationError
from django.db import models
from django.http import HttpResponse
from django.template import TemplateDoesNotExist, Context, RequestContext, Template as DjangoTemplate, add_to_builtins as register_templatetags
from django.db import models
from django.http import HttpResponse
from django.template import TemplateDoesNotExist, Context, RequestContext, Template as DjangoTemplate, add_to_builtins as register_templatetags
@@
-99,6
+100,24
@@
class Page(View):
def __unicode__(self):
return self.title
def __unicode__(self):
return self.title
+ def clean_fields(self, exclude=None):
+ try:
+ super(Page, self).clean_fields(exclude)
+ except ValidationError, e:
+ errors = e.message_dict
+ else:
+ errors = {}
+
+ if 'template' not in errors and 'template' not in exclude:
+ try:
+ self.template.clean_fields()
+ self.template.clean()
+ except ValidationError, e:
+ errors['template'] = e.messages
+
+ if errors:
+ raise ValidationError(errors)
+
class Meta:
app_label = 'philo'
class Meta:
app_label = 'philo'