diff --git a/django/core/meta/fields.py b/django/core/meta/fields.py index c45c7b6e02..71b995a2df 100644 --- a/django/core/meta/fields.py +++ b/django/core/meta/fields.py @@ -720,9 +720,9 @@ class ForeignKey(Field): def get_db_prep_save(self,value): if value == '' or value == None: - return None + return None else: - return int(value) + return self.rel.get_related_field().get_db_prep_save(value) def flatten_data(self, follow, obj = None): if not obj: @@ -731,9 +731,9 @@ class ForeignKey(Field): # the length of choices is *2*, not 1, because SelectFields always # have an initial "blank" value. if not self.blank and not self.rel.raw_id_admin and self.choices: - choice_list = self.get_choices_default() - if len(choice_list) == 2: - return { self.attname : choice_list[1][0] } + choice_list = self.get_choices_default() + if len(choice_list) == 2: + return { self.attname : choice_list[1][0] } return Field.flatten_data(self, follow, obj) class ManyToManyField(Field):