From 3ca1199da85b226c61faa7b5502e82058aa86c58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Honza=20Kr=C3=A1l?= Date: Mon, 1 Jun 2009 15:41:56 +0000 Subject: [PATCH] [soc2009/model-validation] Added validation for ForeignKey git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/model-validation@10877 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/db/models/fields/related.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index d4b921bc1d..5579db475f 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -682,6 +682,12 @@ class ForeignKey(RelatedField, Field): if self.rel.parent_link: return super(ForeignKey, self).validate(value, model_instance) + if not value: + return + try: + self.rel.to._default_manager.get(**{self.rel.field_name:value}) + except self.rel.to.DoesNotExist, e: + raise exceptions.ValidationError('Model %s with pk %r does not exist.' % (self.rel.to._meta.verbose_name, value)) def get_attname(self): return '%s_id' % self.name