{"id": 8585, "created": "2008-08-27 03:40:43", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:38.667137", "stage": "Unreviewed", "status": "closed", "component": "contrib.admin", "type": null, "severity": null, "version": "1.0-beta", "resolution": "worksforme", "summary": "InterfaceError with MySQLdb set_character_set", "description": "I have syncdb and runserver via console mode without any error. but when I want to run it via mod_python, and I got some error like this.\r\n{{{\r\nEnvironment:\r\n\r\nRequest Method: GET\r\nRequest URL: http://218.30.114.220/infocoll/admin/\r\nDjango Version: 1.0-beta_1-SVN-unknown\r\nPython Version: 2.4.3\r\nInstalled Applications:\r\n['django.contrib.auth',\r\n 'django.contrib.contenttypes',\r\n 'django.contrib.sessions',\r\n 'django.contrib.admin',\r\n 'infocoll.info',\r\n 'infocoll.log']\r\nInstalled Middleware:\r\n('django.middleware.common.CommonMiddleware',\r\n 'django.contrib.sessions.middleware.SessionMiddleware',\r\n 'django.contrib.auth.middleware.AuthenticationMiddleware',\r\n 'django.middleware.doc.XViewMiddleware')\r\n\r\n\r\nTraceback:\r\nFile \"/usr/lib/python2.4/site-packages/django/core/handlers/base.py\" in get_response\r\n 86. response = callback(request, *callback_args, **callback_kwargs)\r\nFile \"/usr/lib/python2.4/site-packages/django/contrib/admin/sites.py\" in root\r\n 155. if not self.has_permission(request):\r\nFile \"/usr/lib/python2.4/site-packages/django/contrib/admin/sites.py\" in has_permission\r\n 113. return request.user.is_authenticated() and request.user.is_staff\r\nFile \"/usr/lib/python2.4/site-packages/django/contrib/auth/middleware.py\" in __get__\r\n 5. request._cached_user = get_user(request)\r\nFile \"/usr/lib/python2.4/site-packages/django/contrib/auth/__init__.py\" in get_user\r\n 78. user_id = request.session[SESSION_KEY]\r\nFile \"/usr/lib/python2.4/site-packages/django/contrib/sessions/backends/base.py\" in __getitem__\r\n 46. return self._session[key]\r\nFile \"/usr/lib/python2.4/site-packages/django/contrib/sessions/backends/base.py\" in _get_session\r\n 168. self._session_cache = self.load()\r\nFile \"/usr/lib/python2.4/site-packages/django/contrib/sessions/backends/db.py\" in load\r\n 15. expire_date__gt=datetime.datetime.now()\r\nFile \"/usr/lib/python2.4/site-packages/django/db/models/manager.py\" in get\r\n 81. return self.get_query_set().get(*args, **kwargs)\r\nFile \"/usr/lib/python2.4/site-packages/django/db/models/query.py\" in get\r\n 295. num = len(clone)\r\nFile \"/usr/lib/python2.4/site-packages/django/db/models/query.py\" in __len__\r\n 151. self._result_cache = list(self.iterator())\r\nFile \"/usr/lib/python2.4/site-packages/django/db/models/query.py\" in iterator\r\n 266. for row in self.query.results_iter():\r\nFile \"/usr/lib/python2.4/site-packages/django/db/models/sql/query.py\" in results_iter\r\n 200. for rows in self.execute_sql(MULTI):\r\nFile \"/usr/lib/python2.4/site-packages/django/db/models/sql/query.py\" in execute_sql\r\n 1613. cursor = self.connection.cursor()\r\nFile \"/usr/lib/python2.4/site-packages/django/db/backends/__init__.py\" in cursor\r\n 56. cursor = self._cursor(settings)\r\nFile \"/usr/lib/python2.4/site-packages/django/db/backends/mysql/base.py\" in _cursor\r\n 221. self.connection = Database.connect(**kwargs)\r\nFile \"build/bdist.linux-x86_64/egg/MySQLdb/__init__.py\" in Connect\r\n 74. return Connection(*args, **kwargs)\r\nFile \"build/bdist.linux-x86_64/egg/MySQLdb/connections.py\" in __init__\r\n 198. self.set_character_set(charset)\r\nFile \"build/bdist.linux-x86_64/egg/MySQLdb/connections.py\" in set_character_set\r\n 277. super(Connection, self).set_character_set(charset)\r\n\r\nException Type: InterfaceError at /infocoll/admin/\r\nException Value: (0, '')\r\n}}}\r\nhere is some info of mine\r\n* mysql \r\n{{{\r\nServer version:\t\t5.1.26-rc-log Source distribution\r\nProtocol version:\t10\r\nConnection:\t\tLocalhost via UNIX socket\r\nServer characterset:\tutf8\r\nDb characterset:\tutf8\r\nClient characterset:\tutf8\r\nConn. characterset:\tutf8\r\n}}}\r\n* host \r\n{{{\r\nLinux JA_PUBLIC_TEST_114_220 2.6.18-53.el5 #1 SMP Mon Nov 12 02:14:55 EST 2007 x86_64 x86_64 x86_64 GNU/Linux\r\nPython 2.4.3\r\nMySQL-python-1.2.2\r\n}}}\r\n\r\n", "owner": "nobody", "reporter": "khsing", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8606, "created": "2008-08-27 12:45:34", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:42.043470", "stage": "Unreviewed", "status": "closed", "component": "Database layer (models, ORM)", "type": null, "severity": null, "version": "dev", "resolution": "worksforme", "summary": "Attribute error in Exception handling - Oracle backend", "description": "There is an error with the Oracle backend. Here is the trackback: http://dpaste.com/74192/\r\nIt works if 'message' is replaced by args[0], but there is probably a more elegant way to do it.\r\nLast thing: I'm running Python 2.3, with no possibility to use a newer version.\r\n", "owner": "nobody", "reporter": "guneeyoufix", "keywords": "attribute,excpetion,message,database,oracle,backend", "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8621, "created": "2008-08-27 20:56:50", "changetime": "2008-08-28 02:12:16", "last_pulled_from_trac": "2022-03-06 03:42:44.291449", "stage": "Unreviewed", "status": "closed", "component": "contrib.comments", "type": null, "severity": null, "version": "dev", "resolution": "worksforme", "summary": "Error in contrib.comments:", "description": "Caught an exception while rendering: Could not import django.contrib.comments.views.userflags. Error was: cannot import name ModeratorDeletion\r\n\r\nTraceback is this:\r\nOriginal Traceback (most recent call last):\r\n File \"/home/xxx/project/trunk/django/template/debug.py\", line 71, in render_node\r\n result = node.render(context)\r\n File \"/home/xxx/project/trunk/django/template/defaulttags.py\", line 365, in render\r\n return reverse(self.view_name, args=args, kwargs=kwargs)\r\n File \"/home/xxx/project/trunk/django/core/urlresolvers.py\", line 307, in reverse\r\n *args, **kwargs)))\r\n File \"/home/xxx/project/trunk/django/core/urlresolvers.py\", line 289, in reverse\r\n if lookup_view in self.reverse_dict:\r\n File \"/home/xxx/project/trunk/django/core/urlresolvers.py\", line 225, in _get_reverse_dict\r\n for key, value in pattern.reverse_dict.iteritems():\r\n File \"/home/xxx/project/trunk/django/core/urlresolvers.py\", line 228, in _get_reverse_dict\r\n self._reverse_dict[pattern.callback] = (pattern,)\r\n File \"/home/xxx/project/trunk/django/core/urlresolvers.py\", line 188, in _get_callback\r\n raise ViewDoesNotExist, \"Could not import %s. Error was: %s\" % (mod_name, str(e))\r\nViewDoesNotExist: Could not import django.contrib.comments.views.userflags. Error was: cannot import name ModeratorDeletion\r\n", "owner": "nobody", "reporter": "tback", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8623, "created": "2008-08-27 21:25:48", "changetime": "2008-09-10 04:16:40", "last_pulled_from_trac": "2022-03-06 03:42:44.608334", "stage": "Design decision needed", "status": "closed", "component": "contrib.comments", "type": null, "severity": null, "version": null, "resolution": "wontfix", "summary": "New comments upgrade guide breaks permalinks, views", "description": "The SQL provided by the [http://docs.djangoproject.com/en/dev/ref/contrib/comments/upgrade/#upgrading-data comment upgrade guide] does not preserve a comment\u2019s {{{id}}} and therefore breaks most permalinks and any detail view that uses the {{{id}}} to resolve the url.\r\n\r\nNeither of these cases are absolutely critical because:\r\n\r\n 1. permalinks using {{{/#}}} still get you to the page, just not the comment,\r\n 2. almost no one (I would guess) uses a comment detail view.\r\n\r\nFurther, if someone was using ''both'' comments and free comments it will not be possible to preserve the {{{id}}}\u2019s for both as they are being merged in to one table. But they could choose which one to preserve and do that one first.\r\n\r\nUnfortunately my SQL-fu is not good enough to write a patch, or even know if preserving the comment\u2019s {{{id}}} is possible.", "owner": "nobody", "reporter": "benspaulding", "keywords": "sql, comments, docs", "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8586, "created": "2008-08-27 05:04:15", "changetime": "2008-10-15 03:40:11", "last_pulled_from_trac": "2022-03-06 03:42:38.829017", "stage": "Unreviewed", "status": "closed", "component": "File uploads/storage", "type": null, "severity": null, "version": "dev", "resolution": "invalid", "summary": "ImageFieldFile cannot be saved with File.read()", "description": "Both of these forms of data are rejected by get_image_dimensions, but accepted by !FieldFile.save(). If you use an object with attr read, like get_image_dimensions wants, it is rejected by the default file storage since it doesn't have a chunk method. This is very useful if you want to duplicate an image behind the scenes for manipulation.\r\n\r\nThis may be related to #8208, since it is making this call before the image data has been written to the filesystem. It may need to be called after the ancestor save to get the proper filename (and fix #8208).\r\n\r\nTraceback:\r\n{{{\r\nFile \"/usr/lib/python2.5/site-packages/django/core/handlers/base.py\" in get_response\r\n 86. response = callback(request, *callback_args, **callback_kwargs)\r\nFile \"/usr/lib/python2.5/site-packages/django/contrib/admin/sites.py\" in root\r\n 173. return self.model_page(request, *url.split('/', 2))\r\nFile \"/usr/lib/python2.5/site-packages/django/views/decorators/cache.py\" in _wrapped_view_func\r\n 44. response = view_func(request, *args, **kwargs)\r\nFile \"/usr/lib/python2.5/site-packages/django/contrib/admin/sites.py\" in model_page\r\n 192. return admin_obj(request, rest_of_url)\r\nFile \"/usr/lib/python2.5/site-packages/django/contrib/admin/options.py\" in __call__\r\n 191. return self.change_view(request, unquote(url))\r\nFile \"/usr/lib/python2.5/site-packages/django/db/transaction.py\" in _commit_on_success\r\n 238. res = func(*args, **kw)\r\nFile \"/usr/lib/python2.5/site-packages/django/contrib/admin/options.py\" in change_view\r\n 570. self.save_model(request, new_object, form, change=True)\r\nFile \"/usr/lib/python2.5/site-packages/django/contrib/admin/options.py\" in save_model\r\n 367. obj.save()\r\nFile \"/media/MORTON USB/sites/btevents/../btevents/photos/models.py\" in save\r\n 19. self.slideshow_image.save(os_path.basename(self.image.path), self.image.read(), save=False)\r\nFile \"/usr/lib/python2.5/site-packages/django/db/models/fields/files.py\" in save\r\n 262. self._dimensions_cache = get_image_dimensions(content)\r\nFile \"/usr/lib/python2.5/site-packages/django/core/files/images.py\" in get_image_dimensions\r\n 34. file = open(file_or_path, 'rb')\r\n\r\nException Type: TypeError at /admin/photos/photo/9/\r\nException Value: file() argument 1 must be (encoded string without NULL bytes), not str\r\n}}}\r\n\r\nHere is a snippet to reproduce the problem.\r\n{{{\r\nclass Photo(models.Model):\r\n image = models.ImageField(upload_to='event_photos')\r\n slideshow_image = models.ImageField(upload_to='slideshow', editable=False)\r\n\r\n def save(self):\r\n # save a stub image to get the filename we want from the FileStorage object\r\n self.slideshow_image.save(os.path.basename(self.image.path), self.image.read(), save=False)\r\n i = Image.open(self.slideshow_image.path)\r\n image = i.crop((0, 0, 450, 300))\r\n image.save(self.slideshow_image.path, 'JPEG')\r\n super(Photo, self).save()\r\n}}}", "owner": "nobody", "reporter": "rokclimb15", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8587, "created": "2008-08-27 06:45:56", "changetime": "2008-09-07 23:05:43", "last_pulled_from_trac": "2022-03-06 03:42:39.007686", "stage": "Unreviewed", "status": "closed", "component": "Documentation", "type": null, "severity": null, "version": "dev", "resolution": "invalid", "summary": "Documentation not clear for apache-mopython", "description": "Hello,\r\nFirst, let me thank the documentation team and the designer team of Django. It's because of the excellent documentation and the clean interface I'm now very much interested in learning Django. \r\n\r\nNow into my request. I'm not understanding the documentation for apache and mod-python outlined in http://www.djangoproject.com/documentation/modpython/. I feel this page needs more attention and details. I dont know where I start from and haven't feel confident of using apache after reading the tutorial. Since all of us want to deploy django at some point of time on a real server and not use the built in development server, this page needs more information from the very basics.\r\n\r\nfor example, this is from the apache mod-python documentation page.\r\n\r\n\r\n SetHandler python-program\r\n PythonHandler django.core.handlers.modpython\r\n SetEnv DJANGO_SETTINGS_MODULE mysite.settings\r\n PythonOption django.root /mysite\r\n PythonDebug On\r\n\r\n\u2026and replace mysite.settings with the Python import path to your Django project\u2019s settings file.\r\n\r\nIt'd have been easier, if you have taken an example and explained where mysite resides and with a sample mysite.settings etc.,\r\n\r\n\r\nI hope am making sense. \r\n\r\nThank you,\r\n\r\nShakthi\r\n\r\n", "owner": "nobody", "reporter": "shakthi", "keywords": "apache, mod-python", "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8596, "created": "2008-08-27 09:00:45", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:40.469679", "stage": "Unreviewed", "status": "closed", "component": "contrib.admin", "type": null, "severity": null, "version": "dev", "resolution": "invalid", "summary": "Error while importing URLconf 'mysite.urls': No module named models", "description": "After upgrading to rev [8617], I get an error caused by:\r\n\r\n{{{\r\nadmin.autodiscover()\r\n}}}\r\n\r\nThe exception value is:\r\n{{{\r\nError while importing URLconf 'mysite.urls': No module named models\r\n}}}\r\n\r\nI can't tell much more about it as the traceback is not useful.\r\n\r\nThe installed apps looks like:\r\n\r\n{{{\r\nINSTALLED_APPS = (\r\n 'django.contrib.auth',\r\n 'django.contrib.contenttypes',\r\n 'django.contrib.sessions',\r\n 'django.contrib.sites',\r\n 'django.contrib.admin',\r\n 'django.contrib.sitemaps',\r\n 'blog',\r\n}}}\r\nI have tried with mysite.blog in INSTALLED_APPS but I get another error about importing.", "owner": "nobody", "reporter": "tolano", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8598, "created": "2008-08-27 10:28:35", "changetime": "2008-08-27 10:34:56", "last_pulled_from_trac": "2022-03-06 03:42:40.789695", "stage": "Unreviewed", "status": "closed", "component": "contrib.comments", "type": null, "severity": null, "version": "dev", "resolution": "invalid", "summary": "form.html template in contrib.comments has an open paragraph tag.", "description": "The paragraph tag on line 7 of the comments hasn't been closed and is sending out invalid markup.", "owner": "nobody", "reporter": "jamiecurle", "keywords": "comments form html paragraph", "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8615, "created": "2008-08-27 14:15:20", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:43.378050", "stage": "Unreviewed", "status": "closed", "component": "contrib.admin", "type": null, "severity": null, "version": "dev", "resolution": "invalid", "summary": "Changeset 8605 breaks model loading under unknown circumstances", "description": "[8605] seems to be a backward incompatible change. Without the line ''models.get_apps()'' the models can be loaded without any problem.\r\nIf get_apps is called I receive the following trace:\r\n{{{\r\nValidating models...\r\nTraceback (most recent call last):\r\n File \"/usr/local/bin/django-admin.py\", line 5, in \r\n management.execute_from_command_line()\r\n File \"/PATH/TO/DJANGO/django/core/management/__init__.py\", line 325, in execute_from_command_line\r\n utility.execute()\r\n File \"/PATH/TO/DJANGO/django/core/management/__init__.py\", line 295, in execute\r\n self.fetch_command(subcommand).run_from_argv(self.argv)\r\n File \"/PATH/TO/DJANGO/django/core/management/base.py\", line 77, in run_from_argv\r\n self.execute(*args, **options.__dict__)\r\n File \"/PATH/TO/DJANGO/django/core/management/base.py\", line 96, in execute\r\n output = self.handle(*args, **options)\r\n File \"/PATH/TO/DJANGO/django/core/management/commands/runserver.py\", line 77, in handle\r\n inner_run()\r\n File \"/PATH/TO/DJANGO/django/core/management/commands/runserver.py\", line 47, in inner_run\r\n self.validate(display_num_errors=True)\r\n File \"/PATH/TO/DJANGO/django/core/management/base.py\", line 122, in validate\r\n num_errors = get_validation_errors(s, app)\r\n File \"/usr/lib/python2.5/site-packages/django/core/management/validation.py\", line 28, in get_validation_errors\r\n for (app_name, error) in get_app_errors().items():\r\n File \"/PATH/TO/DJANGO/django/db/models/loading.py\", line 128, in get_app_errors\r\n self._populate()\r\n File \"/PATH/TO/DJANGO/django/db/models/loading.py\", line 57, in _populate\r\n self.load_app(app_name, True)\r\n File \"/PATH/TO/DJANGO/django/db/models/loading.py\", line 72, in load_app\r\n mod = __import__(app_name, {}, {}, ['models'])\r\n File \"/home/aeby/workspace/atizo/src/atizo/platform/models/__init__.py\", line 14, in \r\n from atizo.platform.models.country import Country\r\n File \"/home/aeby/workspace/atizo/src/atizo/platform/models/country.py\", line 16, in \r\n from atizo.platform.models.multilang_text import MultilangText\r\n File \"/home/aeby/workspace/atizo/src/atizo/platform/models/multilang_text.py\", line 57, in \r\n admin.site.register(MultilangText, MultilangTextAdmin)\r\n File \"/PATH/TO/DJANGO/django/contrib/admin/sites.py\", line 91, in register\r\n validate(admin_class, model)\r\n File \"/PATH/TO/DJANGO/django/contrib/admin/validation.py\", line 22, in validate\r\n models.get_apps()\r\n File \"/PATH/TO/DJANGO/django/db/models/loading.py\", line 97, in get_apps\r\n self._populate()\r\n File \"/PATH/TO/DJANGO/django/db/models/loading.py\", line 57, in _populate\r\n self.load_app(app_name, True)\r\n File \"/PATH/TO/DJANGO/django/db/models/loading.py\", line 72, in load_app\r\n mod = __import__(app_name, {}, {}, ['models'])\r\n File \"/home/aeby/workspace/atizo/src/atizo/../atizo/channels/models/__init__.py\", line 15, in \r\n from channel import Channel\r\n File \"/home/aeby/workspace/atizo/src/atizo/../atizo/channels/models/channel.py\", line 40, in \r\n admin.site.register(Channel, ChannelAdmin)\r\n File \"/PATH/TO/DJANGO/django/contrib/admin/sites.py\", line 91, in register\r\n validate(admin_class, model)\r\n File \"/PATH/TO/DJANGO/django/contrib/admin/validation.py\", line 22, in validate\r\n models.get_apps()\r\n File \"/PATH/TO/DJANGO/django/db/models/loading.py\", line 97, in get_apps\r\n self._populate()\r\n File \"/PATH/TO/DJANGO/django/db/models/loading.py\", line 57, in _populate\r\n self.load_app(app_name, True)\r\n File \"/PATH/TO/DJANGO/django/db/models/loading.py\", line 72, in load_app\r\n mod = __import__(app_name, {}, {}, ['models'])\r\n File \"/home/aeby/workspace/atizo/src/atizo/../atizo/projects/models/__init__.py\", line 15, in \r\n from idea import Idea\r\n File \"/home/aeby/workspace/atizo/src/atizo/projects/models/idea.py\", line 16, in \r\n from atizo.platform.models.language import Language\r\n File \"/home/aeby/workspace/atizo/src/atizo/../atizo/platform/models/language.py\", line 37, in \r\n admin.site.register(Language, LanguageAdmin)\r\n File \"/PATH/TO/DJANGO/django/contrib/admin/sites.py\", line 91, in register\r\n validate(admin_class, model)\r\n File \"/PATH/TO/DJANGO/django/contrib/admin/validation.py\", line 22, in validate\r\n models.get_apps()\r\n File \"/PATH/TO/DJANGO/django/db/models/loading.py\", line 97, in get_apps\r\n self._populate()\r\n File \"/PATH/TO/DJANGO/django/db/models/loading.py\", line 57, in _populate\r\n self.load_app(app_name, True)\r\n File \"/PATH/TO/DJANGO/django/db/models/loading.py\", line 72, in load_app\r\n mod = __import__(app_name, {}, {}, ['models'])\r\n File \"/home/aeby/workspace/atizo/src/atizo/personal/models/__init__.py\", line 19, in \r\n from userprofile import UserProfileUrl\r\n File \"/home/aeby/workspace/atizo/src/atizo/personal/models/userprofile.py\", line 21, in \r\n from atizo.platform.models.country import Country\r\nImportError: cannot import name Country\r\n}}}\r\nIt seems to be quite hard to locate the problem :(", "owner": "nobody", "reporter": "aeby", "keywords": "introspect models admin validation", "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8583, "created": "2008-08-27 01:11:00", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:38.341014", "stage": "Ready for checkin", "status": "closed", "component": "Documentation", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Comments upgrade SQL fails on FreeComment data", "description": "In the contrib.comments upgrade instructions, the UPDATE statements work when migrating the old `Comment` data but they fail on `FreeComment` data because the latter has null `user_id`s.\r\n\r\nAttached patch ensures that the UPDATES get applied only to migrated `Comment` data (i.e. when user_id is not NULL.) Not sure if this is good enough but it works for me in PGSQL.", "owner": "jacob", "reporter": "rajeshd", "keywords": "comments docs", "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8584, "created": "2008-08-27 01:16:50", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:38.508356", "stage": "Accepted", "status": "closed", "component": "Internationalization", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Corner case for get_language_for_request function in translation", "description": "As I understand the problem would show itself if the following, rather strange, conditions are met:\r\n\r\n * User language preference specify `xx-YY`\r\n * `xx_YY` l10n is supported by the Django installation (i.e. it's listed in `settings.LANGUAGE`)\r\n * The actual `xx_YY/LC_MESSAGES/django.mo` is missing from the project, or the Django installation itself\r\n * `xx` is listed in in `settings.LANGUAGE`\r\n * `xx/LC_MESSAGES/django.mo` file exists\r\n\r\nIn this scenario, Django won't use the `xx` translation.\r\n\r\nPS: Also, `pyflakes` points out there is an unused import of `settings` in line 61 of the same file.", "owner": "nobody", "reporter": "ramiro", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8589, "created": "2008-08-27 07:10:55", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:39.343938", "stage": "Unreviewed", "status": "closed", "component": "contrib.admin", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "admin logout url broken", "description": "If you click on the app link in admin interface and then logout the url is broken.\r\n\r\nFor examples if you have an app named 'test' in the admin interface there is an href on 'test' if you follow the href and the click logout the logout url will be /admin/test/logout the correct one is /admin/logout,\r\n\r\nregards\r\ndrakkan", "owner": "nobody", "reporter": "drakkan", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8590, "created": "2008-08-27 07:48:19", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:39.501792", "stage": "Ready for checkin", "status": "closed", "component": "Documentation", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Add some information in comment upgrade guide", "description": "Some users seems to have trouble upgrading to the newcomments contrib app, as in #8571 and http://groups.google.com/group/django-users/browse_thread/thread/eb5db61766a5dc07\r\n\r\nAlso, as I was going to upgrade to the new system, I jumped straight away to the \"Upgrade\" page. Then, running the SQL command wouldn't work because I had forgotten to run `syncdb` to create the new tables. I think this might potentially be a trap for a lot of users.\r\n\r\nThe attached patch attempts to fix those two issues.", "owner": "jacob", "reporter": "julien", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8591, "created": "2008-08-27 08:02:04", "changetime": "2008-08-27 12:12:19", "last_pulled_from_trac": "2022-03-06 03:42:39.660209", "stage": "Unreviewed", "status": "closed", "component": "Documentation", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Bad link at docs.djangoproject.com", "description": "Bad link at http://docs.djangoproject.com/en/dev/releases/.\r\n\r\nAll references to release notes are not reachable.", "owner": "nobody", "reporter": "kegan", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8592, "created": "2008-08-27 08:02:45", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:39.804360", "stage": "Accepted", "status": "closed", "component": "Database layer (models, ORM)", "type": null, "severity": null, "version": "1.0-beta", "resolution": "fixed", "summary": "Savepoints not completely disabled with PostgreSQL prior to 8.0.", "description": "I am using Django 1.0 beta 1 with PostgreSQL 7.4.\r\n\r\nWith mod_python, I have the following exception : {{{ ProgrammingError: syntax error at or near \"SAVEPOINT\" at character 1 }}}\r\n\r\nSavepoints should be disabled with PostgreSQL < 8.0 (Changeset [8317]) but this does not work because it is not disabled in all !DatabaseWrapper objects, only the first one. Surely because we are using a class member to store the fact that it has been disabled : {{{ self.__class__._version = version }}}\r\n\r\nThe problem is not present when using {{{ manage.py runserver }}}, surely because only one !DatabaseWrapper will be created.\r\n", "owner": "nobody", "reporter": "mlafon@gmail.com", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8593, "created": "2008-08-27 08:25:32", "changetime": "2011-09-28 16:12:30", "last_pulled_from_trac": "2022-03-06 03:42:39.961921", "stage": "Ready for checkin", "status": "closed", "component": "File uploads/storage", "type": "Bug", "severity": "Normal", "version": "1.0", "resolution": "fixed", "summary": "Image upload in Windows changes filename to lowercase", "description": "When using an ImageField and uploading an image via admin, say the filename was Test.jpg, uploading it in Linux will save the file as Test.jpg on the disk, and the reference in the database is also Test.jpg, things work normally as expected here.\r\n\r\nHowever, when uploading the same file in Windows, the filename is saved on the disk as test.jpg (all lower case), but in the database is still referenced as Test.jpg. Since the filesystem in Windows is not case sensitive, this is not really much of an issue immediately. If you however, then copy your Django based site back to a Linux based machine, you will get a missing image, as it is expected to find the file \"Test.jpg\" in the filesystem, however the file is \"test.jpg\". In this case, this can become a bit of a problem.\r\n\r\nI am not sure if the problem is related to Django or Python on Windows.", "owner": "SmileyChris", "reporter": "robvdl", "keywords": "upload image lowercase", "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8595, "created": "2008-08-27 08:55:43", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:40.314787", "stage": "Ready for checkin", "status": "closed", "component": "Documentation", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Remove note about possible change of url template tag syntax", "description": "This note is probably not relevant in the 1.0 doc.", "owner": "jacob", "reporter": "julien", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8597, "created": "2008-08-27 09:54:41", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:40.624052", "stage": "Accepted", "status": "closed", "component": "Database layer (models, ORM)", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "PostgreSQL: r8536 broke iexact lookups with underscores", "description": "Changeset [8536] changed the way field iexact lookups are translated in the PostgreSQL backend. Before the patch, these were translated to \"ILIKE %s\". Now it's \"UPPER(field) = UPPER(%s)\". However, the %s value is still escaped for use in a LIKE expression, that is, all underscores are prepended with \"\\\\\".\r\n\r\nBefore the patch (correct):\r\n\r\n{{{\r\n>>> User.objects.filter(username__iexact='test_user').query.as_sql()\r\n('SELECT [...] FROM \"auth_user\" WHERE \"auth_user\".\"username\"::text ILIKE %s ', (u'test\\\\_user',))\r\n}}}\r\n\r\nAfter the patch (wrong):\r\n\r\n{{{\r\nUser.objects.filter(username__iexact='test_user').query.as_sql()\r\n('SELECT [...] FROM \"auth_user\" WHERE UPPER(\"auth_user\".\"username\"::text) = UPPER(%s) ', (u'test\\\\_user',))\r\n}}}\r\n\r\nAs a result, iexact lookups no longer work in the current version with PostgreSQL, if the comparison value contains an underscore.\r\n\r\n", "owner": "nobody", "reporter": "rene.puls@repro-mayr.de", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8599, "created": "2008-08-27 10:54:17", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:40.953416", "stage": "Unreviewed", "status": "closed", "component": "Uncategorized", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Remove unused 'urls' directory in comments", "description": "Most likely an oversight after the merge of `newcomments`. There is an empty `urls` directory that's still hanging about:\r\nhttp://code.djangoproject.com/browser/django/trunk/django/contrib/comments/urls", "owner": "nobody", "reporter": "julien", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8600, "created": "2008-08-27 11:08:09", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:41.102487", "stage": "Ready for checkin", "status": "closed", "component": "Documentation", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Typo in URL dispatcher doc", "description": "Not a massively important typo, but potentially misleading. The given example is for oldcomments. See attached patch.", "owner": "nobody", "reporter": "julien", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8601, "created": "2008-08-27 11:09:40", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:41.260719", "stage": "Accepted", "status": "closed", "component": "contrib.comments", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Typo in comments view", "description": "The patch should speak for itself. I've also removed an unused import.", "owner": "nobody", "reporter": "julien", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8603, "created": "2008-08-27 12:19:10", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:41.568024", "stage": "Accepted", "status": "closed", "component": "Documentation", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Typo in index.txt", "description": "The howto-outputting-PDF link should not contain capitals.", "owner": "nobody", "reporter": "dpaccoud", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8604, "created": "2008-08-27 12:27:23", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:41.746311", "stage": "Accepted", "status": "closed", "component": "Documentation", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "\"Documentation\" link on djangoproject.com should be changed", "description": "Just to not forget about that:\r\n\r\nThe new documentation system has been/will be shortly announced, and release notes refering to the new comments system are on its way, hence the Documentation link on djangoproject.com should point to the new documentation (which has the documentation for the new comments, and the latest relase notes).\r\n\r\nSo, don't forget ;)", "owner": "jacob", "reporter": "telenieko", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8605, "created": "2008-08-27 12:32:12", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:41.903378", "stage": "Unreviewed", "status": "closed", "component": "*.djangoproject.com", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Link to Django Software Foundation at docs.djangoproject.com broken", "description": "The link to Django Software Foundation at docs.djangoproject.com broken. It points relatively to \"/foundation/\", which translates to the non-existing page http://docs.djangoproject.com/foundation/ instead of the correct http://www.djangoproject.com/foundation/.", "owner": "nobody", "reporter": "jodal", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8607, "created": "2008-08-27 12:45:41", "changetime": "2008-09-05 15:01:03", "last_pulled_from_trac": "2022-03-06 03:42:42.203115", "stage": "Unreviewed", "status": "closed", "component": "Core (Serialization)", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "yaml serialization to file fails", "description": "When serializing anything to yaml with stream=open('file','w') it fails with the following error:\r\n\r\n>>> XMLSerializer = serializers.get_serializer('yaml')\r\n>>> serializer = XMLSerializer()\r\n>>> serializer.serialize(Partner.objects.all(), stream=open('partners.yaml', 'w'))\r\n\r\nTraceback (most recent call last):\r\n File \"./bin/serialization/serialize_partners.py\", line 16, in \r\n serializer.serialize(Partner.objects.all(), stream=out)\r\n File \"/var/django/phones-lev/django/core/serializers/base.py\", line 56, in serialize\r\n return self.getvalue()\r\n File \"./django/core/serializers/pyyaml.py\", line 43, in getvalue\r\n return self.stream.getvalue()\r\nAttributeError: 'file' object has no attribute 'getvalue'\r\n", "owner": "nobody", "reporter": "antony_hatchkins", "keywords": "yaml", "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8608, "created": "2008-08-27 12:56:35", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:42.357134", "stage": "Accepted", "status": "closed", "component": "contrib.comments", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "django.contrib.comments points to documentation that doesn't exists on the webpage", "description": "When having an error on my django install about comments, I'm invited to check out the documentation on http://www.djangoproject.com/documentation/comments/ but the link gives me Not Found....\r\n\r\n\r\nLink:\r\n\r\nhttp://www.djangoproject.com/documentation/comments/\r\n\r\nError:\r\n\r\nComment post not allowed (400)\r\nWhy: \tMissing content_type or object_pk field.\r\n\r\nThe comment you tried to post to this view wasn't saved because something tampered with the security information in the comment form. The message above should explain the problem, or you can check the [http://www.djangoproject.com/documentation/comments/ comment documentation] for more help.\r\n\r\n\r\n", "owner": "nobody", "reporter": "anonymous", "keywords": "error page wrong location point", "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8609, "created": "2008-08-27 13:01:22", "changetime": "2008-08-28 19:19:27", "last_pulled_from_trac": "2022-03-06 03:42:42.501405", "stage": "Unreviewed", "status": "closed", "component": "Documentation", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Typo in obsolete-index.txt", "description": "forms and newforms-migration have been removed from the obsolete directory.", "owner": "nobody", "reporter": "dpaccoud", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8610, "created": "2008-08-27 13:04:12", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:42.645097", "stage": "Ready for checkin", "status": "closed", "component": "contrib.admin", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Mark alt attributes of admin widgets for i18n", "description": "In {{{django.contrib.admin.widgets}}} are two strings not marked for translation.\r\n\r\n\r\n", "owner": "jezdez", "reporter": "jezdez", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8611, "created": "2008-08-27 13:22:52", "changetime": "2009-10-17 10:32:28", "last_pulled_from_trac": "2022-03-06 03:42:42.804257", "stage": "Unreviewed", "status": "closed", "component": "Core (Other)", "type": null, "severity": null, "version": "1.1", "resolution": "fixed", "summary": "Reverse for '' not found", "description": "this happens when trying to get a reverse for a function decorated with @login_required.", "owner": "nobody", "reporter": "imbaczek@gmail.com", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8612, "created": "2008-08-27 13:25:35", "changetime": "2010-01-01 21:34:50", "last_pulled_from_trac": "2022-03-06 03:42:42.954594", "stage": "Accepted", "status": "closed", "component": "contrib.localflavor", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Add Indonesian (id) localflavor", "description": "Classes:\r\n * IDPostCodeField\r\n * IDProvinceSelect\r\n * IDPhoneNumberField\r\n * IDLicensePlatePrefixSelect\r\n * IDLicensePlateField\r\n * IDNationalIdentityNumberField\r\n", "owner": "ronny", "reporter": "ronny", "keywords": "indonesia indonesian", "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8613, "created": "2008-08-27 13:27:30", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:43.105761", "stage": "Accepted", "status": "closed", "component": "Forms", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "FileField.save_file() is no longer used.", "description": "In [8616], nearly all of oldforms was removed (yay!), but `FileField.save_file()` remains. It was only ever used by oldforms manipulators, and a simple search in 1.0b2 shows no remaining references to it. It should also be removed as part of the oldforms removal.", "owner": "nobody", "reporter": "Gulopine", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8614, "created": "2008-08-27 14:07:50", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:43.234954", "stage": "Ready for checkin", "status": "closed", "component": "contrib.comments", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "typo in django.contrib.comments models.py", "description": "While reading through django/contrib/comments/models.py I noticed that the comments for the Comment model references the field person_name which does not exist. This should probably be user_name which does exist.", "owner": "nobody", "reporter": "Nate Straz ", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8616, "created": "2008-08-27 14:54:33", "changetime": "2009-10-21 01:41:11", "last_pulled_from_trac": "2022-03-06 03:42:43.519815", "stage": "Accepted", "status": "closed", "component": "contrib.sessions", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "File-based sessions dropped with SESSION_SAVE_EVERY_REQUEST = True", "description": "When using django.contrib.sessions.backends.file with SESSION_SAVE_EVERY_REQUEST = True, repeated requests for the same session that arrive very close together will cause corruption in the session file and result in a dropped session. The recent changes in the session framework went a long ways in resolving this issue, but not quite far enough.\r\n\r\nTo resolve the problem, I tried using django.core.files.locks to lock the file when open for reading or writing. However, this proved not sufficiently atomic. The problem can be resolved using the atomic file locking flags when opening the session file for reading or writing. Unfortunately, these are not available on all platforms. The attached patch uses them if they are available. This fixes the problem on platforms that support the atomic file locking flags.", "owner": "jacob", "reporter": "warren@wandrsmith.net", "keywords": "session, file, race", "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 1, "needs_docs": 0, "ui_ux": 0} {"id": 8617, "created": "2008-08-27 15:04:43", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:43.669155", "stage": "Ready for checkin", "status": "closed", "component": "contrib.formtools", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "wizard_error string in form wizard is not marked for translation", "description": "The wizard_error message that is optionally displayed when the security hash fails is not marked for translation.", "owner": "nobody", "reporter": "bthomas", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8619, "created": "2008-08-27 19:45:49", "changetime": "2011-06-01 13:55:11", "last_pulled_from_trac": "2022-03-06 03:42:44.004915", "stage": "Someday/Maybe", "status": "closed", "component": "contrib.formtools", "type": "New feature", "severity": "Normal", "version": "dev", "resolution": "fixed", "summary": "Allow FormWizard to accept classes or instances", "description": "This is a feature request for !FormWizard to take instances of Forms rather than just callable classes. This will allow modification of the form_list in process_step to give extra arguments to Form instances (such as to specify dynamic field creation). I am not entirely sure how to accomplish this, or I would include a patch. I think it would involve some introspection work to figure out if the object is callable hasattr('callable')?\r\n\r\nIf someone can point me in the right direction, I can make the patch for this.", "owner": "nobody", "reporter": "rokclimb15", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8620, "created": "2008-08-27 20:17:11", "changetime": "2014-05-24 12:12:51", "last_pulled_from_trac": "2022-03-06 03:42:44.148651", "stage": "Accepted", "status": "closed", "component": "Forms", "type": "New feature", "severity": "Normal", "version": "dev", "resolution": "fixed", "summary": "ModelForm.Meta.exclude only excludes model fields, not form fields", "description": "If I have a ModelForm that inherits from another form, and I define exclude and/or fields, these only affect fields on the model. I cannot use them to exclude any non-model fields that I may have added to the ancestor form. E.g.:\r\n\r\n\r\n{{{\r\nclass AForm(ModelForm):\r\n extra_non_model_field = forms.CharField()\r\n\r\nclass BForm(AForm):\r\n class Meta:\r\n model = Foo\r\n exclude = ('extra_non_model_field',) # this doesn't work, due to the way ModelFormMetaclass.__new__ is written\r\n}}}\r\n\r\n\r\nSure that's a pathological example, but there are more sensible situations in which this is an issue. Seems to me it's more intuitive to expect the exclude/fields options to affect all fields, not just model fields.\r\n\r\nA fix would be to add this at django/forms/models.py line 180:\r\n\r\n{{{\r\n [declared_fields.pop(f) for f in declared_fields.keys() if f not in opts.fields or f in opts.exclude]\r\n}}}\r\n\r\n\r\n\r\n\r\n", "owner": "loic84", "reporter": "levity", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8622, "created": "2008-08-27 21:03:06", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:44.452357", "stage": "Unreviewed", "status": "closed", "component": "File uploads/storage", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Exceptions in UploadHandler cause hang", "description": "I ran across this trying to recreate another problem. On Windows, if I set FILE_UPLOAD_TEMP_DIR to reside on a disk that is nearly out of space, and then use the `django.core.files.uploadhandler.TemporaryFileUploadHandler` to handle uploaded files, file uploads will hang. I changed the implementation of write in the Windows implementation of !TemporaryFile in django/core/files/temp.py to be:\r\n\r\n{{{\r\n def write(self, s):\r\n print 'in TemporaryFile(nt), about to call self.file.write(s)'\r\n x = self.file.write(s)\r\n print 'in TemporaryFile(nt), back from self.file.write(s)'\r\n return x\r\n}}}\r\n\r\nand then when I try the upload (using dev server) I see the first print, but not the second. It's not in a hard loop, the CPU is mostly idle, so it's like its waiting for free space. Clearing space on the disk doesn't wake it up, though. ", "owner": "nobody", "reporter": "kmtracey", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8624, "created": "2008-08-27 22:02:39", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:44.764408", "stage": "Accepted", "status": "closed", "component": "Translations", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Updated Hungarian translation for 1.0", "description": "I have updated the Hungarian translation for Django 1.0. Please see the attached file. (djangojs.po is complete)", "owner": "nobody", "reporter": "szilveszter", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8625, "created": "2008-08-27 22:36:50", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:44.905558", "stage": "Accepted", "status": "closed", "component": "Translations", "type": null, "severity": null, "version": "dev", "resolution": "fixed", "summary": "Updated Hebrew translations", "description": "Updated Hebrew translations. This includes the new contrib.comments strings.", "owner": "nobody", "reporter": "mksoft", "keywords": null, "easy": 0, "has_patch": 1, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8582, "created": "2008-08-27 00:31:32", "changetime": "2011-09-28 16:12:17", "last_pulled_from_trac": "2022-03-06 03:42:38.192112", "stage": "Unreviewed", "status": "closed", "component": "contrib.admin", "type": null, "severity": null, "version": "1.0-beta", "resolution": "duplicate", "summary": "Changing password on a new install generates a NoReverseMatch exception", "description": "I searched for this bug, best I knew how...didn't find anything on it.\r\n\r\n 1. Installed 1.0Beta1\r\n 2. Activated the admin per the instructions in the tutorial\r\n 3. Logged in\r\n 4. Clicked on the \"Change password\" link (top right of the page)\r\n 5. Changed password\r\n 6. Got this:\r\n\r\n{{{\r\nEnvironment:\r\n\r\nRequest Method: POST\r\nRequest URL: http://demo.sktdev.com/jkugler/admin/password_change/\r\nDjango Version: 1.0-beta_1-SVN-8472\r\nPython Version: 2.5.2\r\nInstalled Applications:\r\n['django.contrib.auth',\r\n 'django.contrib.contenttypes',\r\n 'django.contrib.sessions',\r\n 'django.contrib.sites',\r\n 'django.contrib.admin']\r\nInstalled Middleware:\r\n('django.middleware.common.CommonMiddleware',\r\n 'django.contrib.sessions.middleware.SessionMiddleware',\r\n 'django.contrib.auth.middleware.AuthenticationMiddleware',\r\n 'django.middleware.doc.XViewMiddleware')\r\n\r\n\r\nTraceback:\r\nFile \"/usr/lib/python2.5/site-packages/django/core/handlers/base.py\" in get_response\r\n 86. response = callback(request, *callback_args, **callback_kwargs)\r\nFile \"/usr/lib/python2.5/site-packages/django/contrib/admin/sites.py\" in root\r\n 161. return self.password_change(request)\r\nFile \"/usr/lib/python2.5/site-packages/django/contrib/admin/sites.py\" in password_change\r\n 197. return password_change(request)\r\nFile \"/usr/lib/python2.5/site-packages/django/contrib/auth/decorators.py\" in __call__\r\n 67. return self.view_func(request, *args, **kwargs)\r\nFile \"/usr/lib/python2.5/site-packages/django/contrib/auth/views.py\" in password_change\r\n 139. return HttpResponseRedirect(reverse('django.contrib.auth.views.password_change_done'))\r\nFile \"/usr/lib/python2.5/site-packages/django/core/urlresolvers.py\" in reverse\r\n 307. *args, **kwargs)))\r\nFile \"/usr/lib/python2.5/site-packages/django/core/urlresolvers.py\" in reverse\r\n 291. raise NoReverseMatch(\"Reverse for '%s' not found.\" % lookup_view)\r\n\r\nException Type: NoReverseMatch at /jkugler/admin/password_change/\r\nException Value: Reverse for '' not found.\r\n}}}\r\n\r\nThis is under mod_python. Apache config:\r\n\r\n{{{\r\n \r\n SetHandler python-program\r\n PythonHandler django.core.handlers.modpython\r\n SetEnv DJANGO_SETTINGS_MODULE skaconnect.settings\r\n PythonOption django.root /jkugler\r\n PythonDebug On\r\n PythonPath \"['/home/jkugler/code'] + sys.path\"\r\n PythonInterpreter jkugler_python\r\n PythonAutoReload On\r\n \r\n}}}\r\n\r\nurls.py:\r\n\r\n{{{\r\nfrom django.conf.urls.defaults import *\r\nfrom django.contrib import admin\r\nadmin.autodiscover()\r\n\r\nurlpatterns = patterns('',\r\n (r'^admin/(.*)', admin.site.root),\r\n)\r\n}}}\r\n\r\n", "owner": "nobody", "reporter": "Joshua Kugler ", "keywords": "password_change_done, NoReverseMatch", "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8588, "created": "2008-08-27 06:56:08", "changetime": "2008-08-30 15:48:00", "last_pulled_from_trac": "2022-03-06 03:42:39.176550", "stage": "Unreviewed", "status": "closed", "component": "contrib.admin", "type": null, "severity": null, "version": "dev", "resolution": "duplicate", "summary": "Admin interface +'s are still displayed next to FK even if you dont have permission to add objects of that type.", "description": "In the admin if your logged in with a user that does not have permission to add a certain object referenced as FK in another model the plus sign is displayed next to the FK reference even though when you click on the plus sign it says 'permission denied'. It would be nice if + sign wasn't displayed if you don't have the correct permissions to add an object of that type.", "owner": "nobody", "reporter": "billsb", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8594, "created": "2008-08-27 08:54:11", "changetime": "2008-08-27 09:17:11", "last_pulled_from_trac": "2022-03-06 03:42:40.134439", "stage": "Unreviewed", "status": "closed", "component": "Database layer (models, ORM)", "type": null, "severity": null, "version": "dev", "resolution": "duplicate", "summary": "Add a model Meta parameter to prevent from table creation", "description": "I'm working with an existing oracle database, and I can't use the syncdb tool because in have views in my schema. Making requests to these views is not a problem at all, but syncdb only looks for tables, and since some of the classes in my model are referring to views, syncdb doesn't find them. In the syncdb logic, since the table doesn't exist, it has to be created. But there is already an object with this name (the view) and therefore, syncdb fails.\r\n\r\nTherefore, since I cannot run syncdb, the list of permissions I can grant to my users is not being updated. I guess I could add all the permissions by hand, and that's I will do if there is no other solution.\r\n\r\nHowever I was thinking of a trick that might not be so difficult to implement for you, and that would allow me (and of course other users in the same situation) to run syncdb successfully, and keep the functions given by the utility running.\r\n\r\nWhat I'm suggesting is that a flag (basically a boolean) is added to the list of Meta parameters.\r\nLet's call it create_table.\r\nThe flag would be set to True by default, and would mean that when you run syncdb, syncdb will attempt to create the table if it doesn't exist.\r\nIf set to False, then syncdb wouldn't try to create the table, and would carry on its job, part of which is to update the list of permissions.\r\n\r\nI think it makes sense to implement this, in the sense that, when you work with an exisitng database, you basically know that the tables are created.\r\n\r\nThere might be another solution to the issue (for example adding an option to the syncdb utility which would tell it not to try to create tables, for example), but I haven't studied te django code enough to be able to tell which is the best.\r\n\r\nThank you for looking into it.", "owner": "nobody", "reporter": "guneeyoufix", "keywords": "syncdb,table,view,oracle,Meta", "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8602, "created": "2008-08-27 11:22:38", "changetime": "2008-08-27 17:04:26", "last_pulled_from_trac": "2022-03-06 03:42:41.413441", "stage": "Unreviewed", "status": "closed", "component": "Generic views", "type": null, "severity": null, "version": "dev", "resolution": "duplicate", "summary": "Archive_week should accept Monday as the first day of the week", "description": "Currently, the weeks in django.views.generic.date_based.archive_week start with Sunday. While this is common practice in the US, most of the rest of the world uses Monday as the first day of the week (which also happens to be an ISO standard), and the generic view isn't very useful in these countries.", "owner": "nobody", "reporter": "Jusso", "keywords": null, "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0} {"id": 8618, "created": "2008-08-27 19:17:24", "changetime": "2014-08-11 14:21:18", "last_pulled_from_trac": "2022-03-06 03:42:43.846234", "stage": "Accepted", "status": "closed", "component": "Database layer (models, ORM)", "type": "New feature", "severity": "Normal", "version": "dev", "resolution": "duplicate", "summary": "Many-to-many intermediary tables can't have multiple foreign keys to source/target models", "description": "The following schema:\r\n{{{\r\nfrom django.db import models\r\n\r\nclass Person(models.Model):\r\n name = models.CharField(max_length=100)\r\n vacations = models.ManyToManyField('Location', through='Vacation', blank=True)\r\n\r\n\r\nclass Location(models.Model):\r\n city = models.CharField(max_length=100)\r\n country = models.CharField(max_length=100)\r\n\r\nclass Vacation(models.Model):\r\n person = models.ForeignKey(Person)\r\n location = models.ForeignKey(Location)\r\n date = models.DateField()\r\n travel_agent = models.ForeignKey(Person, related_name='booked_vacations')\r\n}}}\r\n\r\ndoesn't pass validation because \"Intermediary model Vacation has more than one foreign key to Person, which is ambiguous and is not permitted.\"\r\n\r\nIt looks to me like the only reason for this error is because django doesn't have a way to specify which foreign keys on the intermediary model are relevant (or that there is no default behavior specified).\r\n\r\nThere's obviously more than one way around this, and probably someone can come up with a nicer example schema than I did. The simplest thing would be to get rid of that validation check, which (i think) would cause django to use the first key found for each model.", "owner": "nobody", "reporter": "coda", "keywords": "m2m intermediary validation", "easy": 0, "has_patch": 0, "needs_better_patch": 0, "needs_tests": 0, "needs_docs": 0, "ui_ux": 0}