Author: mtredinnick
Date: 2008-07-19 17:26:32 -0500 (Sat, 19 Jul 2008)
New Revision: 7998
Modified:
django/trunk/django/db/models/base.py
django/trunk/tests/modeltests/model_forms/models.py
Log:
Reverted [7986].
It turns out that we need to treat filename creation/display (in
particular, the upload_to path) differently depending upon whether the value is
out of the database or provided by other code and there's no reliable way to
determine that at the moment (although some later proposed changes might alter
that). So calling get_FIELD_filename on an unsaved model with a changed file
attribute will not necessarily return the same result as after the save().
Refs #5619. Fixed #7843.
Modified: django/trunk/django/db/models/base.py
===================================================================
--- django/trunk/django/db/models/base.py 2008-07-19 20:02:46 UTC (rev
7997)
+++ django/trunk/django/db/models/base.py 2008-07-19 22:26:32 UTC (rev
7998)
@@ -459,13 +459,13 @@
def _get_FIELD_filename(self, field):
if getattr(self, field.attname): # Value is not blank.
- return os.path.normpath(os.path.join(settings.MEDIA_ROOT,
field.get_filename(getattr(self, field.attname))))
+ return os.path.normpath(os.path.join(settings.MEDIA_ROOT,
getattr(self, field.attname)))
return ''
def _get_FIELD_url(self, field):
if getattr(self, field.attname): # Value is not blank.
import urlparse
- return urlparse.urljoin(settings.MEDIA_URL,
field.get_filename(getattr(self, field.attname))).replace('\\', '/')
+ return urlparse.urljoin(settings.MEDIA_URL, getattr(self,
field.attname)).replace('\\', '/')
return ''
def _get_FIELD_size(self, field):
Modified: django/trunk/tests/modeltests/model_forms/models.py
===================================================================
--- django/trunk/tests/modeltests/model_forms/models.py 2008-07-19 20:02:46 UTC
(rev 7997)
+++ django/trunk/tests/modeltests/model_forms/models.py 2008-07-19 22:26:32 UTC
(rev 7998)
@@ -12,8 +12,6 @@
from django.db import models
-TEMP_DIR = tempfile.gettempdir()
-
ARTICLE_STATUS = (
(1, 'Draft'),
(2, 'Pending'),
@@ -62,7 +60,7 @@
class TextFile(models.Model):
description = models.CharField(max_length=20)
- file = models.FileField(upload_to=TEMP_DIR)
+ file = models.FileField(upload_to=tempfile.gettempdir())
def __unicode__(self):
return self.description
@@ -73,9 +71,9 @@
# If PIL is available, try testing PIL.
# Otherwise, it's equivalent to TextFile above.
import Image
- image = models.ImageField(upload_to=TEMP_DIR)
+ image = models.ImageField(upload_to=tempfile.gettempdir())
except ImportError:
- image = models.FileField(upload_to=TEMP_DIR)
+ image = models.FileField(upload_to=tempfile.gettempdir())
def __unicode__(self):
return self.description
@@ -786,24 +784,6 @@
# FileField ###################################################################
-# File instance methods. Tests fix for #5619.
-
->>> instance = TextFile(description='nothing', file='name')
->>> expected = '%s/name' % TEMP_DIR
->>> instance.get_file_filename() == expected
-True
->>> instance.get_file_url() == expected
-True
->>> instance.save_file_file(instance.file, SimpleUploadedFile(instance.file,
'some text'))
->>> instance.get_file_filename() == expected
-True
->>> instance.get_file_url() == expected
-True
-
->>> os.unlink(instance.get_file_filename())
-
-# File forms.
-
>>> class TextFileForm(ModelForm):
... class Meta:
... model = TextFile
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---