Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Fixed #9508 -- Added an appropriate FileField.__hash__ implementation.

Required because we declare a custom __eq__ method.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@9997 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit 6e415a5f90dc89e83b0e926f973c629b56642a9c 1 parent d01c17e
Malcolm Tredinnick authored March 08, 2009
4  django/db/models/fields/files.py
@@ -34,6 +34,10 @@ def __eq__(self, other):
34 34
     def __ne__(self, other):
35 35
         return not self.__eq__(other)
36 36
 
  37
+    def __hash__(self):
  38
+        # Required because we defined a custom __eq__.
  39
+        return hash(self.name)
  40
+
37 41
     # The standard File contains most of the necessary properties, but
38 42
     # FieldFiles can be instantiated without a name, so that needs to
39 43
     # be checked for here.
5  tests/regressiontests/file_storage/models.py
@@ -54,6 +54,11 @@ class Person(models.Model):
54 54
 >>> p.mugshot != p1.mugshot
55 55
 True
56 56
 
  57
+Bug #9508: Similarly to the previous test, make sure hash() works as expected
  58
+(equal items must hash to the same value).
  59
+>>> hash(p.mugshot) == hash(p2.mugshot)
  60
+True
  61
+
57 62
 # Bug #8175: correctly delete files that have been removed off the file system.
58 63
 >>> import os
59 64
 >>> p2 = Person(name="Fred")

0 notes on commit 6e415a5

Please sign in to comment.
Something went wrong with that request. Please try again.