tickets
32,817 rows
This data as json, CSV (advanced)
id ▼ | created | changetime | last_pulled_from_trac | stage | status | component | type | severity | version | resolution | summary | description | owner | reporter | keywords | easy | has_patch | needs_better_patch | needs_tests | needs_docs | ui_ux |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
102 | 2005-07-20 02:21:13 | 2007-07-03 23:04:15 | 2022-03-06 03:19:45.338216 | Ready for checkin | closed | Core (Other) | defect | normal | fixed | Exceptions aren't html-quoted | Exceptions that contain <> (like <Foo.bar at 0x139413>) aren't HTML quoted, and the text disapears. | adrian | ianb@colorstudy.com | 0 | 0 | 0 | 0 | 0 | 0 | ||
103 | 2005-07-20 03:37:24 | 2007-07-03 23:06:11 | 2022-03-06 03:19:45.513585 | Design decision needed | closed | *.djangoproject.com | defect | normal | fixed | "Get current version: 1.0" is misleading | The front page link to the download page says "Get current version: 1.0". This is misleading - there is no version 1.0 yet. The text should read "Get development version" or something similar which reinforces the fact that Django has not yet made it to a marked version. I would also argue that going straight to 1.0 isn't necessarily a good idea. If you look at Rails, they spent months and months rolling through the 0.9 etc releases before everything was considered stable enough for a 1.0. This seems like a smart model to follow. | jacob | Simon Willison | 0 | 0 | 0 | 0 | 0 | 0 | ||
104 | 2005-07-20 06:12:21 | 2007-07-03 23:04:05 | 2022-03-06 03:19:45.679376 | Design decision needed | closed | Core (Other) | defect | normal | 1.0 | duplicate | i18n for internal strings | Maybe it would be a good idea to start using gettext for internal string resources, so people could start translating stuff? I think especially about internal strings like those in the validators. | adrian | hugo | i18n | 0 | 0 | 0 | 0 | 0 | 0 |
105 | 2005-07-20 09:00:38 | 2007-01-17 22:12:17 | 2022-03-06 03:19:45.843137 | Unreviewed | closed | contrib.admin | enhancement | normal | fixed | Make collapse class to work in two ways | It is really useful to present some fieldsets collapsed in the admin interface and just with one click get them opened. It would be equally useful, once uncollapsed, to have the possibility to collapse them again. In a such way users can better organize the space on their Django admin interface. | jacob | paolo | 0 | 0 | 0 | 0 | 0 | 0 | ||
106 | 2005-07-20 09:41:37 | 2008-11-12 16:25:37 | 2022-03-06 03:19:45.998838 | Accepted | closed | contrib.admin | defect | normal | fixed | [patch] Problem with some js/select box on IE | Extract from Tutorial 1: 'When you click "Add Another," you'll get a popup window with the "Add poll" form. If you add a poll in that window and click "Save," Django will save the poll to the database and dynamically add it as the selected choice on the "Add choice" form you're looking at.' This (dynamically add it) works on Mozilla 1.0.4 Win. It is not true on IE 6. A blank string is shown instead of name of the new poll. Just after a manual refresh of the page things appear correctly. | kmtracey | paolo | 0 | 1 | 1 | 1 | 1 | 0 | ||
107 | 2005-07-20 10:26:01 | 2006-11-03 13:48:06 | 2022-03-06 03:19:46.151000 | Unreviewed | closed | Metasystem | defect | normal | fixed | [patch] Leaving out ID parameters | For models with an AutoField, it should be possible when creating a new instance (for example in the interactive interpreter) to leave out the id = None parameter. Django should be smart enough to add this by itself. | adrian | Manuzhai <mail@manuzhai.nl> | 0 | 1 | 0 | 0 | 0 | 0 | ||
108 | 2005-07-20 11:52:18 | 2007-07-03 23:03:57 | 2022-03-06 03:19:46.320550 | Unreviewed | closed | *.djangoproject.com | defect | normal | fixed | WikiFormatting page is not there | When I am entering a new ticket, just above the main textarea the link to the WikiFormatting points to an empty page. I think it needs to be restored from the default Trac installation. | jacob | verbosus | 0 | 0 | 0 | 0 | 0 | 0 | ||
109 | 2005-07-20 13:17:49 | 2007-07-03 23:03:46 | 2022-03-06 03:19:46.472589 | Accepted | closed | contrib.admin | defect | blocker | fixed | Patch: Customizing Date(Time)Field displays | In the admin interface, dates are displayed as July 11, 2005, 8:39 p.m., while I'd at the least prefer to have a 24-hour format for the time. I think there should be options DATE_FORMAT, TIME_FORMAT and DATETIME_FORMAT which take care of the default formatting for these fields. | anonymous | Manuzhai | 0 | 0 | 0 | 0 | 0 | 0 | ||
110 | 2005-07-20 14:23:10 | 2006-09-14 01:25:57 | 2022-03-06 03:19:46.627726 | Unreviewed | closed | Documentation | enhancement | normal | fixed | Documentation on pagination needed | Third path of tutorial should show views that don't return output and polls list with paging support. | jacob | maurycy | 0 | 0 | 0 | 0 | 0 | 0 | ||
111 | 2005-07-20 14:38:19 | 2006-10-07 16:23:30 | 2022-03-06 03:19:46.784333 | Unreviewed | closed | contrib.admin | defect | normal | duplicate | Filtering doesn't clean up arguments | When selecting different filters (DateTimeField-based, in this case), in order: * Today: ?datetime__day=20&datetime__month=7&datetime__year=2005 * Then, past 7 days: ?datetime__day=20&datetime__gte=2005-07-13&datetime__month=7&datetime__lte=2005-07-20%2023:59:59&datetime__year=2005 It seems any new arguments should clean up arguments that concern the same field. | adrian | Manuzhai | 0 | 0 | 0 | 0 | 0 | 0 | ||
112 | 2005-07-20 15:25:13 | 2006-09-14 00:37:53 | 2022-03-06 03:19:46.931692 | Unreviewed | closed | Core (Other) | defect | normal | fixed | WSGI requires a HTTP reason in the status | The WSGI-spec clearly requires a reason-phrase when calling start_response, and Apache breaks proxied responses that are missing the reason phrase. So the Django wsgi-adapter is quite broken in the respect. Below is a patch which fixes this. The mapping of HTTP reason-phrases is incomplete, but at least now Django works when being proxied by Apache. {{{ Index: core/handlers/wsgi.py =================================================================== --- core/handlers/wsgi.py (revision 241) +++ core/handlers/wsgi.py (working copy) @@ -1,6 +1,12 @@ from django.utils import datastructures, httpwrappers from pprint import pformat +reasons = { + 200: 'Ok', + 404: 'Not found', + 500: 'Internal Server Error', +} + class WSGIRequest(httpwrappers.HttpRequest): def __init__(self, environ): self.environ = environ @@ -121,7 +127,7 @@ for middleware_method in self._response_middleware: response = middleware_method(request, response) - status = str(response.status_code) + ' ' # TODO: Extra space here is a hack. + status = '%d %s' % (response.status_code, reasons.get(response.status_code, 'Unknown status-code')) response_headers = response.headers if response.cookies: response_headers['Set-Cookie'] = response.cookies.output(header='') }}} | adrian | sune.kirkeby@gmail.com | wsgi | 0 | 0 | 0 | 0 | 0 | 0 | |
113 | 2005-07-20 16:00:52 | 2006-10-07 21:45:17 | 2022-03-06 03:19:47.101602 | Unreviewed | closed | Core (Other) | defect | normal | fixed | auto-reload broken in standalone WSGI server | Auto reload is broken in the new standalone server (http://www.djangoproject.com/weblog/2005/jul/18/local_server/)... Let's bring auto reload back. The code for this borrow's from Peter Hunt and the CherryPy project (www.cherrypy.org), which in turn borrows from Ian Bicking's Paste (http://pythonpaste.org/) We'll need to check on Paste and CherryPy's licenses to make sure this is all kosher. | adrian | Jason Huggins | auto reload | 0 | 0 | 0 | 0 | 0 | 0 | |
114 | 2005-07-20 16:25:56 | 2006-10-07 19:00:07 | 2022-03-06 03:19:47.268097 | Unreviewed | closed | Core (Other) | defect | normal | fixed | DeprecationWarning when creating a new project (see patch) | I decided to start over with the newewst build and received the following when creating a new project: C:\www\webroot>django-admin.py startproject myproject C:\Python24\lib\whrandom.py:38: DeprecationWarning: the whrandom module is deprecated; please use the random module DeprecationWarning) This didn't happen the first couple of times, so I'm guessing that it has to do with the build. I'm running WinXP & Py 2.4.1. | adrian | sdelatorre@gmail.com | 0 | 0 | 0 | 0 | 0 | 0 | ||
115 | 2005-07-20 17:37:01 | 2007-10-21 19:53:27 | 2022-03-06 03:19:47.413935 | Accepted | closed | Core (Other) | enhancement | normal | invalid | Models CRUD via web services | Sometimes we need to offer public avaible CRUD API for existing models. That doesn't request too much creativity and can be generated automatically. It would be great to have them out of box, like admin interface. | nobody | maurycy | feature_request | 0 | 0 | 0 | 0 | 0 | 0 | |
116 | 2005-07-20 17:54:11 | 2011-08-08 11:40:20 | 2022-03-06 03:19:47.571827 | Ready for checkin | closed | contrib.admin | Uncategorized | normal | worksforme | Default admin media doesn't display for 'django-admin runserver' | The default css and java scripts (located in '/usr/lib/python2.4/site-packages/django/conf/admin_media/') for the admin site does not work by default when I use 'django-admin.py runserver'. | adrian | espen@grindhaug.org | 0 | 1 | 0 | 0 | 0 | 0 | ||
117 | 2005-07-20 18:25:32 | 2007-07-03 23:04:07 | 2022-03-06 03:19:47.720239 | Unreviewed | closed | *.djangoproject.com | enhancement | normal | wontfix | Site search and/or Trac search for djangoproject.com | According to TracSearch, Trac has a neat feature where you can enter bug numbers, changeset codes etc in to the search box to jump directly to that item within Trac. It would be useful if the Trac search box was added to the templates for code.djangoproject.com in the same place on every page (it might work in the top right in the light green bar, below the Home / Download / etc links). Even better - how about adding search to the whole of the djangoproject.com website? It would be very handy for searching through the growing piles of documentation, not to mention the comments. | jacob | Simon Willison | 0 | 0 | 0 | 0 | 0 | 0 | ||
118 | 2005-07-20 18:47:08 | 2006-10-07 17:54:45 | 2022-03-06 03:19:47.868796 | Unreviewed | closed | Core (Other) | defect | trivial | fixed | flatfiles should be called flatpages | I keep forgetting that flatfiles live only in the database and start hunting around the filesystem for them (the ones for the Django site that is). Should they be called flatpages instead? | adrian | Simon Willison | 0 | 0 | 0 | 0 | 0 | 0 | ||
119 | 2005-07-20 19:42:19 | 2006-10-22 16:18:52 | 2022-03-06 03:19:48.032022 | Unreviewed | closed | Core (Other) | enhancement | normal | wontfix | Serving media | There is currently no way of serving media through Django, which might be alright for mod_python as it's counting on Apache, but the WSGI server doesn't have such benefits. | adrian | brantley (deadwisdom@gmail.com) | media wsgi images | 0 | 0 | 0 | 0 | 0 | 0 | |
120 | 2005-07-20 19:49:48 | 2007-07-03 23:05:27 | 2022-03-06 03:19:48.191124 | Accepted | closed | Tools | defect | normal | fixed | djang-admin.py called without argument | Calling django-admin.py with no argument gives the following traceback: {{{ Traceback (most recent call last): File "./django-admin.py", line 102, in ? main() File "./django-admin.py", line 63, in main print_error("An 'action' is required.") TypeError: print_error() takes exactly 2 arguments (1 given) }}} And print_error function (defined line 43), effectively wants 2 arguments ;) I'm using rev 249 of Django's trunk. Attached is a trivial proposed patch. | adrian | anonymous | 0 | 0 | 0 | 0 | 0 | 0 | ||
121 | 2005-07-20 20:20:29 | 2007-07-03 23:04:25 | 2022-03-06 03:19:48.338497 | Accepted | closed | Metasystem | enhancement | normal | fixed | [patch] Names in SQL should be quoted | Some valid Python-identifiers are reserved words in SQL-databases, for instance "when" in PostgreSQL. It would be very nice, if Django would quote all names (e.g. schema, table, row) in SQL statements, so these database-reserved words would not pose problems. | adrian | sune.kirkeby@gmail.com | sql | 0 | 1 | 0 | 0 | 0 | 0 | |
122 | 2005-07-20 21:25:02 | 2007-01-17 22:12:17 | 2022-03-06 03:19:48.493110 | Unreviewed | closed | Core (Other) | enhancement | normal | fixed | [patch] Build models using fieldname=FieldClass | This is a patch to make fieldname=FieldClass type model definitions possible. It is fully backwards-compatible with the fields=(...) method. The example given in the tutorial could be re-written as such: {{{ from django.core import meta class Poll(meta.Model): question = meta.CharField(maxlength=200) pub_date = meta.DateTimeField('date published') class Choice(meta.Model): ForeignKey = Poll choice = meta.CharField(maxlength=200) votes = meta.IntegerField() }}} Other ways of defining a ForeignKey: {{{ #multiple keys can be used with tuples: ForeignKey = Poll, OtherKey #options can also be used: ForeignKey = Poll, {'edit_inline':True, 'num_in_admin':3} #the attribute name is irrelevant here: anything = ForeignKey(Poll, edit_inline=True, num_in_admin=3) }}} The implementation is quite simple. (or horribly hackish, depending on how you see things.) It simply goes through all of the attributes of the class, and adds all of the instances of 'Field' to the fields list. (after updating their names with the attribute name.) It also processes the ForeignKey field, producing ForeignKeys as needed. Provisions are in place to maintain the order of the Fields. Here is the patch: {{{ Index: django/core/meta.py =================================================================== --- django/core/meta.py (revision 253) +++ django/core/meta.py (working copy) @@ -368,6 +368,40 @@ if not bases: return type.__new__(cls, name, bases, attrs) + # We must refactor the attributes around a little. All Field class instances will be given + # names (as needed) and moved to the fields list. + + attrs["fields"] = attrs.has_key("fields") and list(attrs["fields"]) or [] + + def handle_ForeignKey(obj): + if isinstance(obj, Model): + attrs["fields"].append(ForeignKey(obj)) + elif type(obj) in (list, tuple): + if isinstance(obj[0], ModelBase) and ty… | adrian | anonymous | 0 | 1 | 0 | 0 | 0 | 0 | ||
123 | 2005-07-20 21:39:20 | 2006-10-07 18:13:53 | 2022-03-06 03:19:48.646860 | Unreviewed | closed | Documentation | defect | normal | fixed | Typo in the model_api/#field-types | Currently the ImageField says this. ImageField Like a FieldField, but validates that the ... I believe this should be Like a FileField, but validates that the ... | jacob | jay@skabber.com | documentation typo | 0 | 0 | 0 | 0 | 0 | 0 | |
124 | 2005-07-20 21:39:32 | 2007-07-03 23:04:49 | 2022-03-06 03:19:48.790734 | Ready for checkin | closed | Core (Other) | defect | normal | duplicate | Better handling of raw POST data | I'll come up with a patch for this, if slashzero doesn't. | adrian | Manuzhai | 0 | 0 | 0 | 0 | 0 | 0 | ||
125 | 2005-07-20 22:13:00 | 2007-07-03 23:03:55 | 2022-03-06 03:19:48.943232 | Ready for checkin | closed | contrib.admin | defect | normal | wontfix | View-Controller separation violation | For example, django.views.admin.main: {{{ if lookup_opts.admin.search_fields: raw_template.append('<div id="toolbar">\n<form id="changelist-search" action="" method="get">\n') raw_template.append('<label><img src="%simg/admin/icon_searchbox.png" /></label> ' % ADMIN_MEDIA_PREFIX) raw_template.append('<input type="text" size="40" name="%s" value="%s" id="searchbar" /> ' % \ (SEARCH_VAR, escape(query))) }}} Shouldn't it be done only with templates? | adrian | maurycy | 0 | 0 | 0 | 0 | 0 | 0 | ||
126 | 2005-07-20 22:19:29 | 2006-10-13 21:17:51 | 2022-03-06 03:19:49.068543 | Unreviewed | closed | contrib.admin | defect | normal | fixed | Patch to place the post_data into the request variable | This is a patch to put the post_data into the request variable. This is helpful for views that need access to the raw data. {{{ Index: wsgi.py =================================================================== --- wsgi.py (revision 256) +++ wsgi.py (working copy) @@ -20,6 +20,7 @@ # Populates self._post and self._files if self.environ['REQUEST_METHOD'] == 'POST': post_data = self.environ['wsgi.input'].read(int(self.environ["CONTENT_LENGTH"])) + self._post_data = post_data if self.environ.get('CONTENT_TYPE', '').startswith('multipart'): header_dict = dict([(k, v) for k, v in self.environ.items() if k.startswith('HTTP_')]) self._post, self._files = httpwrappers.parse_file_upload(header_dict, post_data) @@ -89,7 +90,18 @@ def _set_user(self, user): self._user = user + + def _set_post_data(self,post_data): + self._post_data = post_data + def _get_post_data(self): + if not hasattr(self, '_post_data'): + self._load_post_and_files() + if hasattr(self, '_post_data'): + return(self._post_data) + else: + return("") + GET = property(_get_get, _set_get) POST = property(_get_post, _set_post) COOKIES = property(_get_cookies, _set_cookies) @@ -97,6 +109,7 @@ REQUEST = property(_get_request) session = property(_get_session, _set_session) user = property(_get_user, _set_user) + post_data = property(_get_post_data,_set_post_data) class WSGIHandler: def __init__(self): Index: modpython.py =================================================================== --- modpython.py (revision 256) +++ modpython.py (working copy) @@ -21,10 +21,11 @@ def _load_post_and_files(self): "Populates self._post and self._files" + self._post_data = self._req.read() if self._req.headers_in.has_key('content-type') and self._req.headers_in['content-type… | adrian | anonymous | 0 | 0 | 0 | 0 | 0 | 0 | ||
127 | 2005-07-20 22:20:16 | 2007-07-12 08:02:24 | 2022-03-06 03:19:49.185694 | Unreviewed | closed | Documentation | defect | normal | wontfix | Documentation how to setup djangoproject.com | Tutorial introduces only trivial application. There should be document describing more complicated one, for example djangoproject.com. Not necessary architecture and details, but how to setup and play with. | jacob | maurycy | 0 | 0 | 0 | 0 | 0 | 0 | ||
128 | 2005-07-20 23:39:49 | 2007-07-03 23:03:54 | 2022-03-06 03:19:49.317321 | Accepted | closed | Template system | defect | normal | worksforme | IndexError when using invalid {% extends %} in template should be replaced with better error message. | First of all the error {{{ There's been an error: Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/django/core/handlers/wsgi.py", line 190, in get_response return callback(request, **param_dict) File "/home/espen/django/blog/apps/blog/views/blog.py", line 20, in details return HttpResponse(t.render(c)) File "/usr/lib/python2.4/site-packages/django/core/template.py", line 116, in render return self.nodelist.render(context) File "/usr/lib/python2.4/site-packages/django/core/template.py", line 437, in render bits.append(node.render(context)) File "/usr/lib/python2.4/site-packages/django/core/template_loader.py", line 80, in render parent_is_child = isinstance(compiled_parent.nodelist[0], ExtendsNode) IndexError: list index out of range }}} The template file that trys to extend base.html: {{{ {% extends "base" %} {% block title %} Espen Grindhaug - Blog - {{ obj.headline }} {% endblock %} {% block content %} <h1>{{ obj.headline }}</h1> <p class="summary">{{ obj.summary }}</p> <p class="body">{{ obj.body }}</p> <p class="by">By {{ obj.author }} ({{ obj.pub_date }})</p> {% endblock %} }}} The weird thing here is that I get exactly the same error with completly different child template. base.html (the same as in [http://www.djangoproject.com/documentation/templates/#template-inheritance URL]): {{{ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <link rel="stylesheet" href="style.css" /> <title>{% block title %}Espen Grindhaug{% endblock %}</title> </head> <body> <div id="sidebar"> {% block sidebar %} <ul> <li><a href="/">Home</a></li> <li><a href="/blog/">Blog</a></li> </ul> {% endblock %} </div> <div id="content"> {% block content %}{%… | adrian | espen@grindhaug.org | 0 | 0 | 0 | 0 | 0 | 0 | ||
129 | 2005-07-21 00:02:52 | 2007-07-03 23:04:03 | 2022-03-06 03:19:49.437010 | Accepted | closed | Metasystem | defect | normal | fixed | Multiple ManyToManyField fields with same "to" reference tries to create duplicate tables | Revsion 257 added support for adding multiple !ManyToManyField fields with the same "to" class on the same class. I've tried adding two fields where one has an explicit rel_name option but running "django-admin.py sql myapp" is showing two CREATE TABLE statements with the same table name. I think I've tracked the problem down to the get_m2m_db_table method in the !ManyToManyField class in core/meta.py but I don't understand the code base enough yet to try to fix it. It looks like the code is returning the name as myapp_fromname_toname but I'd expect the name of the many-to-many table to be myapp_relname when the rel_name option is specified. I'm using the MySQL database engine but I don't think that has any bearing on this problem. | adrian | jason@diamond.name | 0 | 0 | 0 | 0 | 0 | 0 | ||
130 | 2005-07-21 02:30:54 | 2007-07-03 23:04:15 | 2022-03-06 03:19:49.563314 | Ready for checkin | closed | *.djangoproject.com | enhancement | normal | wontfix | Display comments in Trac timeline | Jacob figured out how to do this on our internal Trac installation. Let's do it here, too. | jacob | adrian | 0 | 0 | 0 | 0 | 0 | 0 | ||
131 | 2005-07-21 03:40:23 | 2006-09-13 23:47:09 | 2022-03-06 03:19:49.664545 | Unreviewed | closed | Core (Other) | defect | normal | fixed | Included URL configurations do not receive parameters parsed from parent URL configurations | Example: {{{ settings/urls/main.py (r'^(?P<username>\w+)/blog/', include('fiji.apps.blog.urls.blog')), apps/blog/urls/blog.py (r'', 'blog.index'), }}} In this case, the username parameter caught by the main conf file does not get passed to the blog conf file, which is desired. | adrian | jcernelli@gmail.com | 0 | 0 | 0 | 0 | 0 | 0 | ||
132 | 2005-07-21 07:33:38 | 2006-10-16 15:32:45 | 2022-03-06 03:19:49.783570 | Unreviewed | closed | Core (Other) | defect | normal | fixed | REMOTE_ADDR not in WSGI-environ | The WSGI-spec does not promise the presence of 'REMOTE_ADDR' in environ, but DjangoContext reads it unconditionally when checking if it is in INTERNAL_IPS. Here is a short patch to fix this, by using .get instead of []. {{{ Index: django/core/extensions.py =================================================================== --- django/core/extensions.py (revision 247) +++ django/core/extensions.py (working copy) @@ -13,7 +13,7 @@ self['user'] = request.user self['messages'] = request.user.get_and_delete_messages() self['perms'] = PermWrapper(request.user) - if DEBUG and request.META['REMOTE_ADDR'] in INTERNAL_IPS: + if DEBUG and request.META.get('REMOTE_ADDR') in INTERNAL_IPS: self['debug'] = True from django.core import db self['sql_queries'] = db.db.queries }}} | adrian | anonymous | wsgi | 0 | 0 | 0 | 0 | 0 | 0 | |
133 | 2005-07-21 09:24:39 | 2007-07-03 23:04:16 | 2022-03-06 03:19:49.903327 | Unreviewed | closed | Core (Other) | defect | trivial | fixed | Patch to improve DATABASE_ENGINE error message | I could not load the postgresql back end because psycopg was nog installed properly. However, that was not clear from the error message. Patch attached. It changes "Your DATABASE_ENGINE setting, %r, is invalid. Is it spelled correctly? Available options are: %s" into "Could not load database backend: %s. Is DATABASE_ENGINE (currently, %r) spelled correctly? Available options are: %s" displaying the error message from import. | adrian | Joeri van Ruth <jvr+djangotrac@dory.blub.net> | 0 | 0 | 0 | 0 | 0 | 0 | ||
134 | 2005-07-21 09:56:07 | 2007-07-03 23:05:23 | 2022-03-06 03:19:50.024083 | Unreviewed | closed | contrib.admin | defect | normal | fixed | Template for password change not included in source dist | It seems that there are probably templates for this, just not in the current dist? {{{ TemplateDoesNotExist: Tried ['/home/manuzhai/dev/django/django/conf/admin_templates/registration/password_change_form.html'] }}} | adrian | Manuzhai | 0 | 0 | 0 | 0 | 0 | 0 | ||
135 | 2005-07-21 11:19:17 | 2006-10-22 16:26:08 | 2022-03-06 03:19:50.149778 | Unreviewed | closed | Documentation | defect | normal | fixed | Document mod_python behavior with more than one SETTINGS in a vhost | URL resolving will be unstable if more than one DJANGO_SETTINGS_MODULE is referenced within a vhost (for example, in different locations) due to mod_python caching. This should be documented in the mod_python doc. | jacob | Manuzhai | 0 | 0 | 0 | 0 | 0 | 0 | ||
136 | 2005-07-21 12:15:51 | 2007-07-03 23:04:35 | 2022-03-06 03:19:50.285213 | Design decision needed | closed | Documentation | enhancement | normal | fixed | Provide a path to read documentation files in docs/ (enhancement/trivial) | Yeah, it is really valuable to have a docs/ directory always rigorously up to date. The exposition is good also. However for people that approach Django for the first time it would be a great help to know if there is a *suggested* order to read documentation files. (Yes, I'm paranoid versus quality of documentation, it is too important!) It would be possible to specify that order in README file and add a prefix (00_, 01_, 02_ etc) in front of each file in docs/ This ticket is about a small but important!) change, anyway in my opinion it would be another great "welcome here" to newcomers :-) | jacob | paolo | 0 | 0 | 0 | 0 | 0 | 0 | ||
137 | 2005-07-21 12:47:53 | 2007-08-25 23:18:51 | 2022-03-06 03:19:50.412053 | Accepted | closed | Generic views | defect | normal | fixed | TypeError: can't compare datetime.datetime to datetime.date in date_based.py | R267: When accessing /weblog/.... url, object_detail in date_based.py throws exception: {{{ File "/Users/nesh/devel/workspace/django_src/django/views/generic/date_based.py", line 200, in object_detail if date >= now: TypeError: can't compare datetime.datetime to datetime.date }}} Solution: (diff) {{{ diff -u -r1.1 date_based.py --- date_based.py 21 Jul 2005 12:24:11 -0000 1.1 +++ date_based.py 21 Jul 2005 12:40:45 -0000 @@ -188,7 +188,7 @@ the object to be detailed """ try: - date = datetime.date(*time.strptime(year+month+day, '%Y%b%d')[:3]) + date = datetime.datetime(*time.strptime(year+month+day, '%Y%b%d')[:3]) except ValueError: raise Http404 mod = get_module(app_label, module_name) }}} | jacob | nesh@studioquattro.co.yu | 0 | 0 | 0 | 0 | 0 | 0 | ||
138 | 2005-07-21 14:57:54 | 2007-07-03 23:04:26 | 2022-03-06 03:19:50.564697 | Accepted | closed | Documentation | defect | normal | fixed | Error naming the "docs" directory in README | Inside README each occurrence of doc/ should be replaced with docs/. | adrian | paolo | 0 | 0 | 0 | 0 | 0 | 0 | ||
139 | 2005-07-21 17:21:05 | 2007-07-23 08:32:14 | 2022-03-06 03:19:50.687828 | Unreviewed | closed | contrib.admin | enhancement | normal | duplicate | edit_inline should grow some Javascript magic to increase usability | The edit_inline functionality is very nice, but I want more: * When I start typing in the last "Choices" field, I want a new, blank Choice entry to automagically appear below it. * When a new Choice entry appears, I want it properly inserted into the tab order so that I can just hit Tab and move to the new entry. In other words, it should be possible to create a new Poll, click on the first Choice tab, and start typing: Strongly agree <tab> 0 <tab> Agree <tab> 0 <tab> No opinion <tab> 0 <tab> Disagree <tab> 0 <tab> Strongly disagree <tab> 0 <enter> This would make adding an arbitrary number of choices much more streamlined. Currently I have to click the "Save and continue Editing" button after adding each choice, which means my hands have to leave the keyboard and travel over to the mouse. | tmervyn@gmail.com | rmunn@pobox.com | edit_inline | 0 | 0 | 0 | 0 | 0 | 0 | |
140 | 2005-07-21 18:27:01 | 2006-08-29 11:18:56 | 2022-03-06 03:19:50.829383 | Unreviewed | closed | Core (Cache system) | defect | normal | fixed | Memcached cache backend should support multiple servers | SSIA. | jacob | jacob | 0 | 0 | 0 | 0 | 0 | 0 | ||
141 | 2005-07-21 18:59:14 | 2007-07-03 23:04:25 | 2022-03-06 03:19:50.977458 | Ready for checkin | closed | Core (Other) | defect | normal | fixed | --settings option doesn't work as shown in the tutorial | When running '''django-admin.py init --settings='myproject.settings.main'''' (as specified in tutorial 1) I received: {{{ C:\www\webroot\myproject>django-admin.py init --settings='myproject.settings.main' Traceback (most recent call last): File "C:\Python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\bin\django-admin.py", line 103, in ? main() File "C:\Python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\bin\django-admin.py", line 68, in main ACTION_MAPPING[action]() File "C:\Python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\core\management.py", line 278, in init from django.core import db, meta File "C:\Python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\core\db\__init__.py", line 16, in ? from django.conf.settings import DATABASE_ENGINE File "C:\Python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\conf\settings.py", line 34, in ? raise EnvironmentError, "Could not import %s '%s' (is it on sys.path?): %s"% (ENVIRONMENT_VARIABLE, me.SETTINGS_MODULE, e) EnvironmentError: Could not import DJANGO_SETTINGS_MODULE ''myproject.settings.main'' (is it on sys.path?): No module named 'myproject.settings.main' }}} The problem is with the quotes around the module name (--settings='myproject.settings.main'). Running '''django-admin.py init --settings=myproject.settings.main''' (no quotes) works correctly. | adrian | sdelatorre@gmail.com | 0 | 0 | 0 | 0 | 0 | 0 | ||
142 | 2005-07-21 19:14:25 | 2007-07-03 23:03:55 | 2022-03-06 03:19:51.131608 | Unreviewed | closed | Documentation | defect | normal | duplicate | tutorial 1 bug in init --settings | In tutorial1, rev 253, line 77: django-admin.py init --settings='myproject.settings.main' should be: django-admin.py init --settings=myproject.settings.main With Windows XP, Python 2.4.1, Django rev 282, I get this error when the quotes are present: {{{ C:\MyStuff\projects\django>c:\Python24\python.exe C:\Python24\Lib\site-packages\ django-1.0.0-py2.4.egg\django\bin\django-admin.py init --settings='myapp.setting s.admin' Traceback (most recent call last): File "C:\Python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\bin\django-a dmin.py", line 103, in ? main() File "C:\Python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\bin\django-a dmin.py", line 68, in main ACTION_MAPPING[action]() File "c:\Python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\core\managem ent.py", line 278, in init from django.core import db, meta File "c:\Python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\core\db\__in it__.py", line 16, in ? from django.conf.settings import DATABASE_ENGINE File "c:\Python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\conf\setting s.py", line 34, in ? raise EnvironmentError, "Could not import %s '%s' (is it on sys.path?): %s" % (ENVIRONMENT_VARIABLE, me.SETTINGS_MODULE, e) EnvironmentError: Could not import DJANGO_SETTINGS_MODULE ''myapp.settings.admin '' (is it on sys.path?): No module named 'myapp.settings.admin' }}} When I remove the quotes, I don't get an error, and my database is initialized correctly. {{{ C:\MyStuff\projects\django>c:\Python24\python.exe C:\Python24\Lib\site-packages\ django-1.0.0-py2.4.egg\django\bin\django-admin.py init --settings=myapp.settings .admin C:\MyStuff\projects\django> }}} | jacob | Jason Huggins | tutorial django-admin init settings | 0 | 0 | 0 | 0 | 0 | 0 | |
143 | 2005-07-21 19:42:36 | 2007-07-03 23:04:38 | 2022-03-06 03:19:51.287209 | Accepted | closed | Core (Other) | defect | normal | fixed | Problem running the command line examples in Tut 1 when using --settings option | In tutorial 1, under "Playing with the API", none of the examples will work if you've been using the --settings option with django-admin.py (the DJANGO_SETTINGS_MODULE env variable was never set). To work, you have to do the following before importing the project objects: {{{ >>> import os >>> os.environ['DJANGO_SETTINGS_MODULE']='myproject.settings.main' >>> from django.models.polls import polls, choices }}} Is there a more user friendly way to do this? Maybe add a global variable to django.conf that is used to do the import? {{{ >>> django.conf.DJANGO_SETTINGS_MODULE='myproject.settings.main' }}} or possibly {{{ >>> django.settings_module='myproject.settings.main' }}} | adrian | sdelatorre@gmail.com | 0 | 0 | 0 | 0 | 0 | 0 | ||
144 | 2005-07-21 23:29:46 | 2007-07-03 23:04:25 | 2022-03-06 03:19:51.429271 | Accepted | closed | contrib.admin | defect | normal | duplicate | Some admin media files are not viewable | When viewing the Polls site in tutorial 2 under "Click the 'What's up?' poll to edit it:" paragraph, I noticed that a few of the icons were missing (the save button, the checkbox icon when saving an item, the right side of the history button, etc.). The CSS and JS seem to load correctly, and the icons you have sourced at http://media.ljworld.com/ also load correctly. The problem lies with the CSS file which doesn't correctly go to http://media.ljworld.com/. Just to test, I changed the url to the tool-right.gif file in the css to http://media.ljworld.com/img/admin/tool-right.gif and it worked. | adrian | sdelatorre@gmail.com | 0 | 0 | 0 | 0 | 0 | 0 | ||
145 | 2005-07-21 23:38:17 | 2006-10-07 21:08:21 | 2022-03-06 03:19:51.572680 | Unreviewed | closed | contrib.admin | defect | normal | fixed | Logout link and user name visible after logging out. | After logging out of the admin site, my user name and the "logout" link were still visible in the upper right hand side of the page. Clicking on the logout link again takes you to the login page, which then immediately logs you back out after you login. Note: this happened while using the built-in webserver (WinXP, Py 2.4.1) | adrian | sdelatorre@gmail.com | 0 | 0 | 0 | 0 | 0 | 0 | ||
146 | 2005-07-22 03:37:46 | 2007-07-03 23:04:40 | 2022-03-06 03:19:51.714976 | Accepted | closed | Database layer (models, ORM) | defect | normal | fixed | Change order_by and ordering parameters to be less verbose | Instead of the following: {{{ ordering = (('pub_date', 'ASC'), ('name', 'DESC'), (None, 'RANDOM')) }}} ...we should use the following: {{{ ordering = ('pub_date', '-name', '?') }}} See http://groups-beta.google.com/group/django-developers/browse_thread/thread/f4945bd967defde1/f5f3cb3312f77fe5 | adrian | adrian | 0 | 0 | 0 | 0 | 0 | 0 | ||
147 | 2005-07-22 03:55:27 | 2007-07-03 23:04:17 | 2022-03-06 03:19:51.878029 | Design decision needed | closed | contrib.admin | defect | normal | fixed | "sqlite" should be "sqlite3" in conf/project_template/settings/main.py | Problem: new users are just going to copy the suggested "sqlite" in settings/main.py and find that it doesn't work. Solution: Use "sqlite3" throughout. Apply the following patch. {{{ Index: django/conf/project_template/settings/main.py =================================================================== --- django/conf/project_template/settings/main.py (revision 288) +++ django/conf/project_template/settings/main.py (working copy) @@ -10,11 +10,11 @@ LANGUAGE_CODE = 'en-us' -DATABASE_ENGINE = 'postgresql' # 'postgresql', 'mysql', or 'sqlite' -DATABASE_NAME = '' # or path to database file if using sqlite -DATABASE_USER = '' # not used with sqlite -DATABASE_PASSWORD = '' # not used with sqlite -DATABASE_HOST = '' # Set to empty string for localhost; not used with sqlite +DATABASE_ENGINE = 'postgresql' # 'postgresql', 'mysql', or 'sqlite3' +DATABASE_NAME = '' # or path to database file if using sqlite3 +DATABASE_USER = '' # not used with sqlite3 +DATABASE_PASSWORD = '' # not used with sqlite3 +DATABASE_HOST = '' # Set to empty string for localhost; not used with sqlite3 SITE_ID = 1 }}} | adrian | rmunn@pobox.com | 0 | 0 | 0 | 0 | 0 | 0 | ||
148 | 2005-07-22 09:09:34 | 2007-07-16 04:10:10 | 2022-03-06 03:19:52.027642 | Ready for checkin | closed | *.djangoproject.com | defect | trivial | fixed | Add some padding to the bottom of div#content-main | If you look at this page: http://www.djangoproject.com/community/ - it's clear that div#content-main would benefit from a tiny bit of extra padding at the bottom, to ensure the content doesn't come too close to the edge of the div. | wilson | Simon Willison | 0 | 0 | 0 | 0 | 0 | 0 | ||
149 | 2005-07-22 09:17:37 | 2007-08-14 14:58:27 | 2022-03-06 03:19:52.255404 | Design decision needed | closed | Core (Cache system) | defect | normal | 0.91 | fixed | Show latest comments on djangoproject.com | See title. An RSS feed of recently added comments would be very handy as well. | adrian | Simon Willison | delena | 0 | 0 | 0 | 0 | 0 | 0 |
150 | 2005-07-22 09:55:38 | 2007-07-17 21:52:51 | 2022-03-06 03:19:52.458021 | Accepted | closed | Core (Other) | defect | minor | fixed | Should put a notice to set an *absolute path', in the DATABASE_NAME variable if using sqlite3 | If you don't put an absolute path in the DATABASE_NAME variable in the settings/main.py file, Django works but erratically, as it will not always find the database as it's dependent on its running location. There should be warning on *always* setting an absolute path there! | adrian | lstep@adelux.fr | 0 | 0 | 0 | 0 | 0 | 0 | ||
151 | 2005-07-22 10:11:14 | 2006-05-18 14:03:00 | 2022-03-06 03:19:52.660265 | Unreviewed | closed | contrib.admin | defect | normal | fixed | javascript clock not dismissed by clicking "cancel"; several references to ljworld.com in the src code | While going through part 2 of the tutorial (web admin interface), I tried to click on the "Time published" clock" image. The "cancel" row does not appear to dismiss the pop up window. (OTOH clicking on "cancel" on the calendar widget correctly dismisses the calendar popup). I also saw a message on the browser status bar saying "transferring data from media.ljworld.com..." Looking at the source code I noticed that there are indeed several refs to media.ljworld.com: {{{ [davides@icarus django]$ pwd /localstore/computer/davides/tmp/django_src/django [davides@icarus django]$ find . | xargs grep 'media.ljworld.com' ./conf/admin_media/js/.svn/text-base/SelectFilter2.js.svn-base: quickElement('img', filter_p, '', 'src', 'http://media.ljworld.com/img/admin/selector-search.gif'); ./conf/admin_media/js/.svn/text-base/SelectFilter2.js.svn-base: quickElement('img', selector_filter, '', 'src', 'http://media.ljworld.com/img/admin/selector-add.gif', 'alt', 'Add'); ./conf/admin_media/js/admin/.svn/text-base/add_calendars.js.svn-base: quickElement('img', cal_link, '', 'src', 'http://media.ljworld.com/img/admin/icon_calendar.gif', 'alt', 'Calendar'); ./conf/admin_media/js/admin/.svn/text-base/DateTimeShortcuts.js.svn-base: quickElement('img', clock_link, '', 'src', 'http://media.ljworld.com/img/admin/icon_clock.gif', 'alt', 'Clock'); ./conf/admin_media/js/admin/.svn/text-base/DateTimeShortcuts.js.svn-base: quickElement('img', cal_link, '', 'src', 'http://media.ljworld.com/img/admin/icon_calendar.gif', 'alt', 'Calendar'); ./conf/admin_media/js/admin/add_calendars.js: quickElement('img', cal_link, '', 'src', 'http://media.ljworld.com/img/admin/icon_calendar.gif', 'alt', 'Calendar'); ./conf/admin_media/js/admin/DateTimeShortcuts.js: quickElement('img', clock_link, '', 'src', 'http://media.ljworld.com/img/admin/icon_clock.gif', 'alt', 'Clock'); ./conf/admin_media/js/admin/DateTimeShortcuts.js: quickElement('img', cal_link, ''… | adrian | Davide | 0 | 0 | 0 | 0 | 0 | 0 | ||
152 | 2005-07-22 11:33:45 | 2006-06-12 10:47:10 | 2022-03-06 03:19:52.851895 | Design decision needed | closed | Core (Other) | normal | duplicate | FCGI server for django | Maybe the FCGI-WSGI-Server at [http://svn.saddi.com/py-lib/trunk/fcgi.py] might be useable for django? A runfcgi command for django-admin might run along the following lines: {{{ def runfcgi(): "Starts a FCGI server for production use" from django.core.servers.fcgi import WSGIServer from django.core.handlers.wsgi import WSGIHandler WSGIServer(WSGIHandler()).run() runfcgi.args = '' }}} | adrian | gb@bofh.ms | 0 | 0 | 0 | 0 | 0 | 0 | |||
153 | 2005-07-22 13:06:28 | 2007-07-03 23:04:14 | 2022-03-06 03:19:53.002455 | Accepted | closed | Documentation | defect | normal | fixed | Change docs to use new ordering syntax | See #146 and [292]. | jacob | adrian | 0 | 0 | 0 | 0 | 0 | 0 | ||
154 | 2005-07-22 13:10:15 | 2012-11-27 08:55:38 | 2022-03-06 03:19:53.212034 | Accepted | closed | contrib.admin | defect | normal | fixed | Can't delete object with ManytoMany Relationship | If you have an object with a manytomany relationship you can't delete it within the admin interface. As it spits out this error. {{{ Traceback (most recent call last): File "/home/punteney/dobbes.com/django/core/handlers/modpython.py", line 214, in get_response return callback(request, **param_dict) File "/home/punteney/dobbes.com/django/views/admin/main.py", line 1057, in delete_stage obj.delete() File "/home/punteney/dobbes.com/django/core/meta.py", line 57, in _curried return args[0](*(args[1:]+moreargs), **dict(kwargs.items() + morekwargs.items())) File "/home/punteney/dobbes.com/django/core/meta.py", line 760, in method_delete cursor.execute("DELETE FROM %s WHERE %s=%%s" % (opts.db_table, opts.pk.name), [getattr(self, opts.pk.name)]) File "/home/punteney/dobbes.com/django/core/db/base.py", line 10, in execute result = self.cursor.execute(sql, params) IntegrityError: ERROR: update or delete on "blog_entries" violates foreign key constraint "$1" on "blog_entries_categories" DETAIL: Key (id)=(2) is still referenced from table "blog_entries_categories". DELETE FROM blog_entries WHERE id=2 }}} This is from trying to delete a blog entry that is tied to the categories. The line in the Entry model is: {{{ meta.ManyToManyField(Category, filter_interface=meta.HORIZONTAL), }}} I can't remove the category linking before I delete it as it is a required field so it comes back with an error message saying that the field is required. | adrian | Dobbes | 0 | 0 | 0 | 0 | 0 | 0 | ||
155 | 2005-07-22 13:12:55 | 2007-07-03 23:04:05 | 2022-03-06 03:19:53.410538 | Design decision needed | closed | contrib.admin | defect | normal | invalid | django-admin initializes mysite.com in meta table without way to change that | The django-admin script initializes the meta table to contain a mysite.com record that is used for example with the flatfiles and redirects apps. There you can select for what site you want to add stuff - but there is no way to change this record to your own address and site name. And there is no way to add another site to the database - so one asks himself why there are multiple section possibilities in the flatfiles and redirects apps in the first place ... | adrian | gb@bofh.ms | 0 | 0 | 0 | 0 | 0 | 0 | ||
156 | 2005-07-22 13:49:14 | 2006-09-13 23:56:18 | 2022-03-06 03:19:53.614089 | Unreviewed | closed | contrib.admin | defect | normal | fixed | changeset 293 breaks tutorial polls app | After svn up I get the following error when trying to access the admin for the tutorial poll application: {{{ There's been an error: Traceback (most recent call last): File "/usr/local/lib/python2.3/site-packages/django/core/handlers/wsgi.py", line 190, in get_response return callback(request, **param_dict) File "/usr/local/lib/python2.3/site-packages/django/views/admin/main.py", line 129, in change_list if isinstance(lookup_opts.get_field(order_field).rel, meta.ManyToOne): File "/usr/local/lib/python2.3/site-packages/django/core/meta.py", line 258, in get_field raise FieldDoesNotExist, "name=%s" % name FieldDoesNotExist: name= }}} | adrian | anonymous | 0 | 0 | 0 | 0 | 0 | 0 | ||
157 | 2005-07-22 14:01:21 | 2007-07-03 23:04:35 | 2022-03-06 03:19:53.809923 | Accepted | closed | contrib.admin | defect | normal | fixed | view/admin/main.py change_list assumes orderlist is tuple | In the function change_list in views/admin/main.py, an assumption is made that the "ordering" variable will be a tuple. The orderlist can be a single string, according to the behaviour built in meta.handle_legacy_orderlist. As a result of this, the code around line 106 seems incorrect, as it assumes an indexable array. Since a string actually is an indexable array, no error is thrown immediately. The following patch restores my admin pages to working order, but it may not be the best way to handle this. {{{ Index: django/views/admin/main.py =================================================================== --- django/views/admin/main.py (revision 293) +++ django/views/admin/main.py (working copy) @@ -98,6 +98,9 @@ # Normalize it to new-style ordering. ordering = meta.handle_legacy_orderlist(ordering) + if isinstance(ordering, basestring): + # tupelize it + ordering = (ordering,) if ordering[0].startswith('-'): order_field, order_type = ordering[0][1:], 'DESC' }}} | adrian | mfenniak@pobox.com | 0 | 0 | 0 | 0 | 0 | 0 | ||
158 | 2005-07-22 16:34:51 | 2007-07-03 23:04:07 | 2022-03-06 03:19:54.005807 | Design decision needed | closed | contrib.admin | defect | normal | fixed | Base admin template changes | * Now that the templates are in, re-enable the password change option. * Point "Home" to /admin/ by default; this makes sense since password_change and logout also point to /admin/. | adrian | Manuzhai | 0 | 0 | 0 | 0 | 0 | 0 | ||
159 | 2005-07-22 16:55:37 | 2012-02-09 18:56:24 | 2022-03-06 03:19:54.200754 | Ready for checkin | closed | contrib.admin | Bug | Normal | fixed | Circular logout problem | When a not-logged-in user goes to /admin/logout/, they get a login form. When they subsequently log in, they're logged out again. This is probably not desirable behavior; it's very confusing when it happens. I'm not sure what the correct behavior would be: probably say that the user is already logged out instead of showing a login form, though (with a link to the login form, which could just be /admin/). | ashchristopher | Manuzhai | admin logout | 0 | 1 | 0 | 0 | 0 | 0 | |
160 | 2005-07-22 17:03:40 | 2007-07-03 23:04:44 | 2022-03-06 03:19:54.401223 | Ready for checkin | closed | contrib.admin | defect | normal | fixed | Never get to the final logout page | When trying to logout of the admin interface (code from [295]), I never get to the final logout page saying "Thanks for spending time with the website.". I do get redirected to /admin/logout/, but then I get a login form again (which, when I log in, logs me out again, see #159), instead of the final logged-out page. This leads me to think I'm not completely logged out. | adrian | Manuzhai | 0 | 0 | 0 | 0 | 0 | 0 | ||
161 | 2005-07-22 17:42:12 | 2007-07-03 23:04:32 | 2022-03-06 03:19:54.594242 | Design decision needed | closed | Tools | normal | fixed | Log output for "django-admin runserver" shouldn't display admin media | The admin media access logs just get in the way. We should figure out how to stop them from being displayed, so that the logs only feature Django-powered pages. | adrian | adrian | 0 | 0 | 0 | 0 | 0 | 0 | |||
162 | 2005-07-22 17:57:21 | 2006-10-27 11:56:15 | 2022-03-06 03:19:54.815472 | Unreviewed | closed | contrib.admin | defect | minor | fixed | admin log accesses __repr__ too late (w/patch) | If a meta.Model class has a repr function like this: {{{ def __repr__(self): return "Object #%s" % (self.id,) }}} When the object is deleted through the administration interface, the user interface shows that: {{{The object "Object #None" was deleted successfully.}}} A similar message appears in the admin log. It would suggest that the object's representation should be cached before it is deleted for display in the UI and logs. This quick and simple patch fixes the problem: {{{ Index: django/views/admin/main.py =================================================================== --- django/views/admin/main.py (revision 293) +++ django/views/admin/main.py (working copy) @@ -1056,8 +1059,8 @@ if request.POST: # The user has already confirmed the deletion. if perms_needed: raise PermissionDenied + obj_repr = repr(obj) obj.delete() - obj_repr = repr(obj) log.log_action(request.user.id, opts.get_content_type_id(), object_id, obj_repr, log.DELETION) request.user.add_message('The %s "%s" was deleted successfully.' % (opts.verbose_name, obj_repr)) return HttpResponseRedirect("../../") }}} | adrian | mfenniak@pobox.com | 0 | 0 | 0 | 0 | 0 | 0 | ||
163 | 2005-07-22 17:58:19 | 2007-07-03 23:04:16 | 2022-03-06 03:19:55.009550 | Unreviewed | closed | Template system | enhancement | major | magic-removal | fixed | Option to leave off __exact | Doing {{{sites.get_object(id__exact = 1)}}} seems kind of verbose if {{{sites.get_object(id = 1)}}} would convey the same meaning and be a little easier to read. | adrian | Manuzhai | 0 | 0 | 0 | 0 | 0 | 0 | |
164 | 2005-07-22 18:01:43 | 2005-07-26 16:08:52 | 2022-03-06 03:19:55.195450 | Unreviewed | closed | Core (Cache system) | defect | normal | duplicate | mysql/pgsql not implemented in django.core.cache? | Am I just missing it? It looks like only simple and memcache are implemented. If so, the docs should reflect this. | jacob | sway | 0 | 0 | 0 | 0 | 0 | 0 | ||
165 | 2005-07-22 18:07:44 | 2006-10-07 21:16:40 | 2022-03-06 03:19:55.408966 | Unreviewed | closed | Core (Other) | defect | normal | wontfix | Should mod_python config use PythonOption instead of SetEnv for settings? | I'm not sure what does this for performance (probably not bad, though), but it surely ameliorates compatibility with mod_python-2 (and therefore apache-1, a whole suite of webhosts). Why was SetEnv chosen in the first place? | adrian | Manuzhai | 0 | 0 | 0 | 0 | 0 | 0 | ||
166 | 2005-07-22 20:10:11 | 2007-07-03 23:04:18 | 2022-03-06 03:19:55.600391 | Design decision needed | closed | Core (Other) | enhancement | normal | fixed | [patch] Add "in" to the lookup types in the DB API | This patch allows one to do {{{field__in=[1,4,7,10]}}} to select a non-contiguous set of values in a single SELECT statement, which will look like this in SQL: {{{SELECT * FROM table WHERE field IN (1,4,7,10)}}} {{{ Index: django/core/meta.py =================================================================== --- django/core/meta.py (revision 299) +++ django/core/meta.py (working copy) -1018,7 +1020,10 @@ return '%s%s %s %%s' % (table_prefix, field_name, db.OPERATOR_MAPPING[lookup_type]) except KeyError: pass - if lookup_type in ('range', 'year'): + if lookup_type == 'in': + in_clause = ','.join(['%s']*len(value)) + return '%s%s IN (%s)' % (table_prefix, field_name, in_clause) + elif lookup_type in ('range', 'year'): return '%s%s BETWEEN %%s AND %%s' % (table_prefix, field_name) elif lookup_type in ('month', 'day'): return "%s = %%s" % db.get_date_extract_sql(lookup_type, table_prefix + field_name) -1630,7 +1635,7 @@ "Returns field's value prepared for database lookup." if lookup_type in ('exact', 'gt', 'gte', 'lt', 'lte', 'ne', 'month', 'day'): return [value] - elif lookup_type == 'range': + elif lookup_type in ('range', 'in'): return value elif lookup_type == 'year': return ['%s-01-01' % value, '%s-12-31' % value] }}} | adrian | rmunn@pobox.com | 0 | 1 | 0 | 0 | 0 | 0 | ||
167 | 2005-07-22 21:33:35 | 2006-11-06 11:07:20 | 2022-03-06 03:19:55.810372 | Unreviewed | closed | Metasystem | defect | normal | duplicate | ForeignKey should also take string arg instead of class name | Some ForeignKey relationships might be circular, due to the somewhat linear fashion of source code, this doesn't work so well. For example, you could have a Person and an Address, with a Person living at an Address as well as the Address having an owner who is, incidentally, a Person. It would be nice if {{{ ForeignKey('Person') }}} would be supported as well as {{{ ForeignKey(Person) }}} but according to jacobkm, that might not work. In which it would be {{{ ForeignKey('app.people') }}} to make it easier on the black magic scripts to find the right model. | adrian | Manuzhai | 0 | 0 | 0 | 0 | 0 | 0 | ||
168 | 2005-07-23 02:57:40 | 2007-07-03 23:04:31 | 2022-03-06 03:19:56.018772 | Accepted | closed | contrib.admin | defect | major | fixed | history() in django/views/admin/main.py makes assumptions about the object's key name | Normally the ID of an object is "id", except in cases like mine where I'd redefined the key to be something like list: {{{ "meta.AutoField('item_id','Item ID',primary_key=True,unique=True)," }}} When pulling up the history of a record in the administrative interface, the function history() in django/views/admin/main.py is called and an assumption is made on line 1080: {{{ "obj = mod.get_object(id__exact=object_id)" }}} In my case, I believe that it should be (it cannot be hardcoded like this, obviously this needs to be dynamic): {{{ "obj = mod.get_object(item_id__exact=object_id)" }}} Here's the exact text of the traceback I get: {{{ There's been an error: Traceback (most recent call last): File "/usr/local/lib/python2.4/site-packages/django/core/handlers/wsgi.py", line 190, in get_response return callback(request, **param_dict) File "/usr/local/lib/python2.4/site-packages/django/views/admin/main.py", line 1080, in history obj = mod.get_object(id__exact=object_id) File "/usr/local/lib/python2.4/site-packages/django/core/meta.py", line 87, in _curried return args[0](*(args[1:]+moreargs), **dict(kwargs.items() + morekwargs.items())) File "/usr/local/lib/python2.4/site-packages/django/core/meta.py", line 1035, in function_get_object obj_list = function_get_list(opts, klass, **kwargs) File "/usr/local/lib/python2.4/site-packages/django/core/meta.py", line 1057, in function_get_list select, sql, params = function_get_sql_clause(opts, **kwargs) File "/usr/local/lib/python2.4/site-packages/django/core/meta.py", line 1235, in function_get_sql_clause tables2, join_where2, where2, params2, _ = _parse_lookup(kwargs.items(), opts) File "/usr/local/lib/python2.4/site-packages/django/core/meta.py", line 1224, in _parse_lookup _throw_bad_kwarg_error(kwarg) File "/usr/local/lib/python2.4/site-packages/django/core/meta.py", line 1126, in _throw_bad_kwarg_error raise TypeError, "got unexpected keyword argument '%s'" % kwarg … | adrian | clintecker@gmail.com | history | 0 | 0 | 0 | 0 | 0 | 0 | |
169 | 2005-07-23 11:28:21 | 2007-07-03 23:04:14 | 2022-03-06 03:19:56.218220 | Design decision needed | closed | Documentation | defect | trivial | fixed | \\dt instead of \dt in Tutorial 1 | In [http://www.djangoproject.com/documentation/tutorial1/ Tutorial 1] we are told: ''If you're interested, run the command-line client for your database and type \\dt (PostgreSQL), SHOW TABLES; (MySQL), or .schema (SQLite) to display the tables.'' However, the right command in PostgreSQL is {{{\dt}}}, not {{{\\dt}}} | jacob | django@gimbo.org.uk | 0 | 0 | 0 | 0 | 0 | 0 | ||
170 | 2005-07-23 12:45:57 | 2006-10-25 22:29:59 | 2022-03-06 03:19:56.420248 | Unreviewed | closed | contrib.admin | major | 1.0 | invalid | Unicode field names cause UnicodeEncodeError in main admin handler | I'am from China.I can't type words in chinese.There is a UnicodeEncodeError.Just at bellow. ##################################################### There's been an error: Traceback (most recent call last): File "c:\python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\core\handlers\base.py", line 63, in get_response return callback(request, **param_dict) File "c:\python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\views\admin\main.py", line 424, in change_list result_repr = strip_tags(str(field_val)) UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-9: ordinal not in range(128) ##################################################### There's been an error: Traceback (most recent call last): File "c:\python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\core\handlers\base.py", line 63, in get_response return callback(request, **param_dict) File "c:\python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\views\admin\main.py", line 956, in change_stage return HttpResponse(t.render(c)) File "c:\python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\core\template.py", line 116, in render return self.nodelist.render(context) File "c:\python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\core\template.py", line 437, in render bits.append(node.render(context)) File "c:\python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\core\template_loader.py", line 97, in render return compiled_parent.render(context) File "c:\python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\core\template.py", line 116, in render return self.nodelist.render(context) File "c:\python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\core\template.py", line 437, in render bits.append(node.render(context)) File "c:\python24\Lib\site-packages\django-1.0.0-py2.4.egg\django\core\template_loader.py", line 97, in render return compiled_parent.render(context) File "c:\python24\Lib\site-package… | adrian | alang.yl@gmail.com | Unicode | 0 | 0 | 0 | 0 | 0 | 0 | |
171 | 2005-07-23 19:22:34 | 2007-06-07 03:15:08 | 2022-03-06 03:19:56.602071 | Unreviewed | closed | Database layer (models, ORM) | defect | normal | invalid | Bug, I think, in foreign keys and SQLite | Here's a dump of what should be enough info to reproduce the bug. I have to foreign keys in the django app I'm trying to build. Django messes up somewhere and creates two columns with the same name. I'm assigning to Jason because he recently blogged about adding SQLite support. If it's mis-assigned, feel free to hand it off to someone else. {{{ paulproteus@supercore:~/django/kurrency$ echo $DJANGO_SETTINGS_MODULE kurrency.settings.main paulproteus@supercore:~/django/kurrency$ echo $PYTHONPATH /home/paulproteus/django/ paulproteus@supercore:~/django/kurrency/apps/money/models$ cat money.py from django.core import meta class Person(meta.Model): fields = ( meta.CharField('name', maxlength=200), ) class Debt(meta.Model): fields = ( meta.ForeignKey(Person, related_name='owed_from'), # the person who owes money meta.ForeignKey(Person, related_name='owed_to'), # the person to whom money is owed meta.DateTimeField('date', 'date and time the debt was recorded'), meta.IntegerField('cents', 'Number of cents for which the debt is'), meta.CharField('reason', maxlength=255), meta.BooleanField('is_paid') ) paulproteus@supercore:~/django/kurrency/apps/money/models$ django-admin.py sqlindexes money CREATE INDEX money_debts_person_id ON money_debts (person_id); CREATE INDEX money_debts_person_id ON money_debts (person_id); paulproteus@supercore:~/django/kurrency$ django-admin.py init paulproteus@supercore:~/django/kurrency$ django-admin.py install money Error: money couldn't be installed. Possible reasons: * The database isn't running or isn't configured correctly. * At least one of the database tables already exists. * The SQL was invalid. Hint: Look at the output of 'django-admin.py sqlall money'. That's the SQL this command wasn't able to run. The full error: duplicate column name: person_id paulproteus@supercore:~/django/kurrency$ django-admin.py sqlall money BEGIN; CREATE TABLE money_pers… | jacob | Asheesh Laroia <asheesh@asheesh.org> | 0 | 0 | 0 | 0 | 0 | 0 | ||
172 | 2005-07-24 00:08:57 | 2009-03-30 18:50:55 | 2022-03-06 03:19:56.803914 | Unreviewed | closed | Tools | enhancement | normal | dev | fixed | Twisted (twisted.web2) support for Django | I've implemented a basic module to use Twisted Web2 to drive Django. It's based on the demo.py provided with Twisted.Web2. It retains an MIT license as it's derived from Twisted. ---- {{{ # Copyright (c) 2001-2004 Twisted Matrix Laboratories. # See LICENSE for details. """I am a simple test resource. """ import os.path, os from twisted.web2 import log, wsgi from twisted.internet import reactor # This part gets run when you run this file via: "twistd -noy demo.py" if __name__ == '__builtin__': from twisted.application import service, strports from twisted.web2 import server, vhost, channel #from twisted.internet.ssl import DefaultOpenSSLContextFactory from twisted.python import util # Create the resource we will be serving from django.core.handlers.wsgi import AdminMediaHandler, WSGIHandler os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings.admin' test = wsgi.WSGIResource(AdminMediaHandler(WSGIHandler())) # Setup default common access logging res = log.LogWrapperResource(test) log.DefaultCommonAccessLoggingObserver().start() # Create the site and application objects site = server.Site(res) application = service.Application("demo") # Serve it via standard HTTP on port 8080 s = strports.service('tcp:8080', channel.HTTPFactory(site)) s.setServiceParent(application) # Serve it via HTTPs on port 8081 #s = strports.service('ssl:8081:privateKey=doc/core/examples/server.pem', channel.HTTPFactory(site)) #s.setServiceParent(application) }}} | adrian | jnoetzelman@gmail.com | Twisted dynamic virtual host | 0 | 0 | 0 | 0 | 0 | 0 |
173 | 2005-07-24 03:00:41 | 2007-07-03 23:04:42 | 2022-03-06 03:19:56.942086 | Ready for checkin | closed | Documentation | defect | normal | invalid | How do I start Django's in built webserver? | I don't want to spend however long setting up apache! It says in your docs that you have been super clever and thought of me by including a webserver out of the box. Maybe I am being very silly and missing it but I can't seem to find how to start said webserver? Does it really exist ;-) ? Thanks guys, you need a forum for this sort of stuff btw. | jacob | andrew.phillipo@yourstay.com | Apache Web Server built-in | 0 | 0 | 0 | 0 | 0 | 0 | |
174 | 2005-07-24 04:25:02 | 2006-10-22 16:25:38 | 2022-03-06 03:19:57.143228 | Unreviewed | closed | Documentation | defect | normal | fixed | Tutorial01 translated to brazilian portuguese | Tutorial01 translated to brazilian portuguese | jacob | eminetto@gmail.com | 0 | 0 | 0 | 0 | 0 | 0 | ||
175 | 2005-07-24 15:48:38 | 2006-10-22 16:39:55 | 2022-03-06 03:19:57.353322 | Unreviewed | closed | Database layer (models, ORM) | defect | normal | wontfix | select_related does not work in both directions.. | comparing the following two statements: {{{ >>> for p in polls.get_list(select_related=True): print p, p.get_choice_list() >>> for c in choices.get_list(select_related=True): print c.get_poll(), c }}} The first statement runs one query per poll, while the second runs one query no matter how many polls you have. This seems to be because the information about what models are related to each other does not get added to both ends of the relationship... now this is not 100% true because a poll obviously knows about what choices reference it... My guess is that there needs to be a OneToMany class that compliments the ManyToOne relationship, letting the Poll class know that select_related should pull in choices. | adrian | Justin | select_related | 0 | 0 | 0 | 0 | 0 | 0 | |
176 | 2005-07-24 16:07:54 | 2005-07-25 01:31:22 | 2022-03-06 03:19:57.483345 | Unreviewed | closed | Tools | defect | normal | invalid | Database settings should not be kept in settings.main for ease of packaging. | I'm currently developing a project which I hope will be reusable. This obviously includes a certain amoutn fo setting thins up in settings.main. However, when it comes to packaging this project, I'm goign to have to keep remembering to remove my database setting from the file before uploading. Ditto if I want to keep my project in a public svn repository. I propose moving the database settigns by default to settings/db.py which will be imported from within main.py This file will be created by {{{django-admin startproject}}} but a new command should be added to just add the skeleton db.py file to projects that have been distributed without it. | adrian | moof@metamoof.net | django-admin database settings distribution | 0 | 0 | 0 | 0 | 0 | 0 | |
177 | 2005-07-24 19:22:36 | 2007-07-03 23:04:25 | 2022-03-06 03:19:57.946505 | Ready for checkin | closed | contrib.admin | defect | minor | duplicate | Logout from Admin leaves you in /admin/logout | If you logout from the admin interface, your browser (konq & moz) is left in /admin/logout/ and you can't log back in until you manually go to /admin | adrian | EABinGA | 0 | 0 | 0 | 0 | 0 | 0 | ||
178 | 2005-07-24 20:38:38 | 2007-07-03 23:04:14 | 2022-03-06 03:19:58.106499 | Design decision needed | closed | Core (Other) | defect | normal | invalid | Wrong time zone usage | Django doesn't pick up time zone when running under Ubuntu. Setting TZ in environment fixes it. Ubuntu (and Debian Sarge) doesn't have TZ in environment by default though. | adrian | edgars@way.lv | time zone | 0 | 0 | 0 | 0 | 0 | 0 | |
179 | 2005-07-24 20:55:12 | 2006-10-22 16:31:13 | 2022-03-06 03:19:58.635852 | Unreviewed | closed | Core (Management commands) | defect | normal | invalid | Time zone doesn't work right under django_admin.py runserver | No problems with mod_python though | adrian | edgars@way.lv | 0 | 0 | 0 | 0 | 0 | 0 | ||
180 | 2005-07-24 20:56:52 | 2007-01-17 22:12:17 | 2022-03-06 03:20:00.095390 | Unreviewed | closed | Tools | defect | normal | fixed | request.POST doesn't work in django_admin.py runserver | Maybe you should warn people that only tutorial code works with it ;) | adrian | edgars@way.lv | 0 | 0 | 0 | 0 | 0 | 0 | ||
181 | 2005-07-24 22:22:32 | 2005-07-25 16:34:09 | 2022-03-06 03:20:00.489419 | Unreviewed | closed | contrib.admin | defect | normal | invalid | Site and FlatFile don't appear in the Admin interface | As alluded to in your Model documentation, there's a FlatFile model, and a Site model. I was hoping to extend the Site model with a OneToOne relationship so that I could have multiple blogs in one admin interfacce, with its various options such as blog name and short name, and subtitle, and so on. For the moment I've created a separate blog object with this data, but I can only really create one, as I can't add or remove any sites. I tried monkey patching the Site object, but that doesn't seem to have worked. So please could you enable the Site object in the Admin interface, or document how to do so through some equivalent of monkey patching, or tell us why we shouldn't use the object ;) | adrian | moof@metamoof.net | 0 | 0 | 0 | 0 | 0 | 0 | ||
182 | 2005-07-24 22:35:09 | 2014-12-16 17:04:41 | 2022-03-06 03:20:00.704684 | Unreviewed | closed | Tools | defect | normal | duplicate | Add a command to django-admin.py that will install missing tables | Since right now django can't alter tables on the fly, though I have ideas as to how that could be done, could a command be added to django-admin.py that will add any *missing* tables to the database, or just specified tables. That way, while we're protoyping we can just drop tables and add the new ones without much hassle. | adrian | Moof <moof@metamoof.net> | 0 | 0 | 0 | 0 | 0 | 0 | ||
183 | 2005-07-25 00:36:48 | 2007-07-03 23:04:46 | 2022-03-06 03:20:00.857458 | Accepted | closed | Template system | defect | normal | fixed | TypeError: can't compare datetime.datetime to datetime.date | Error: {{{ There's been an error: Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py", line 63, in get_response return callback(request, **param_dict) File "/usr/lib/python2.4/site-packages/django/views/generic/date_based.py", line 108, in archive_month if date >= now: TypeError: can't compare datetime.datetime to datetime.date }}} | adrian | espen@grindhaug.org | 0 | 0 | 0 | 0 | 0 | 0 | ||
184 | 2005-07-25 00:52:49 | 2006-08-29 11:55:20 | 2022-03-06 03:20:01.031103 | Unreviewed | closed | Documentation | defect | normal | fixed | Add django architecture documentation | It would be great to have documentation of Django architecture - general overview, its internals and maybe more details. | jacob | maurycy | 0 | 0 | 0 | 0 | 0 | 0 | ||
185 | 2005-07-25 00:59:00 | 2007-07-03 23:04:51 | 2022-03-06 03:20:01.223489 | Design decision needed | closed | Core (Other) | defect | normal | invalid | Chaining views | Currently, it's possible to assign only one view to specified URL pattern. It would be great to allow to create more complicated chains of views. There are two questions. First, how to extend urlpatterns to support more than one view. Second, how to pass HttpResponse between without breaking existing modules. | adrian | maurycy | 0 | 0 | 0 | 0 | 0 | 0 | ||
186 | 2005-07-25 01:24:26 | 2007-07-03 23:04:43 | 2022-03-06 03:20:01.420542 | Accepted | closed | Metasystem | enhancement | normal | fixed | [patch] Refactor django/core/meta.py to eliminate duplicate code | The {{{function_get_list}}} and {{{function_get_iterator}}} functions in {{{django/core/meta.py}}} are identical except for their return type. I propose refactoring them by making {{{function_get_list}}} into a simple wrapper around {{{function_get_iterator}}}. | adrian | rmunn@pobox.com | 0 | 1 | 0 | 0 | 0 | 0 | ||
187 | 2005-07-25 01:27:13 | 2007-07-03 23:04:17 | 2022-03-06 03:20:01.595046 | Ready for checkin | closed | contrib.admin | defect | normal | 1.0 | fixed | Uknown error with ordering in the admin interface | I've defined the following model: {{{ #!python class Blog(meta.Model): fields = ( meta.OneToOneField(Site), #One blog per site meta.CharField('name', maxlength=100, help_text="Blog Title, as shown on the page"), meta.CharField('subtitle', maxlength=500), meta.CharField('titlebarname', "Title Bar Name", maxlength=50, blank=True, help_text="Short name for putting in <title> elements") ) admin = meta.Admin() def __repr__(self): return self.name }}} When I try to list my blogs by going to http://localhost:8000/admin/blog/blogs/ I always end up with the following error: {{{ There's been an error: Traceback (most recent call last): File "D:\My Documents\Python Sources\Django\django\core\handlers\base.py", line 63, in get_response return callback(request, **param_dict) File "D:\My Documents\Python Sources\Django\django\views\admin\main.py", line 97, in change_list ordering = lookup_opts.admin.ordering or lookup_opts.ordering or ['-' + lookup_opts.pk.name] AttributeError: 'NoneType' object has no attribute 'ordering' }}} A quick play with the object in the interpreter shows it's working correctly: {{{ #!python >>> from django.models.blog import * >>> b = blogs.get_list() >>> b [My Blog] >>> from django.models.blog import * >>> bs = blogs.get_list() >>> bs [My Blog] >>> b = bs[0] >>> b My Blog >>> b.name 'My Blog' >>> b.id 1 >>> b.subtitle 'Where you find all the news' >>> b.titlebarname ' ' >>> s = b.get_site() >>> s mysite.com >>> s.domain 'mysite.com' >>> s.name 'My Django site' >>> }}} | adrian | Moof <moof@metamoof.net> | 0 | 0 | 0 | 0 | 0 | 0 | |
188 | 2005-07-25 06:35:09 | 2005-07-29 21:10:09 | 2022-03-06 03:20:01.785686 | Unreviewed | closed | contrib.admin | defect | normal | fixed | Can't login in admin, when TIME_ZONE set to 'Europe/Riga' in myproject.settings.main | {{{ TIME_ZONE='Europe/Riga' }}} Admin error traceback after submitting login form: {{{ There's been an error: Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py", line 60, in get_response response = middleware_method(request, callback, param_dict) File "/usr/lib/python2.4/site-packages/django/middleware/admin.py", line 49, in process_view user = users.get_object(username__exact=username) File "/usr/lib/python2.4/site-packages/django/core/meta.py", line 87, in _curried return args[0](*(args[1:]+moreargs), **dict(kwargs.items() + morekwargs.items())) File "/usr/lib/python2.4/site-packages/django/core/meta.py", line 1032, in function_get_object obj_list = function_get_list(opts, klass, **kwargs) File "/usr/lib/python2.4/site-packages/django/core/meta.py", line 1059, in function_get_list for row in cursor.fetchall(): File "/usr/lib/python2.4/site-packages/django/core/db/typecasts.py", line 30, in typecast_timestamp int(times[0]), int(times[1]), int(seconds.split('-')[0]), ValueError: invalid literal for int(): 35+03 }}} TIME_ZONE='America/Chicago' works fine though, as well as setting 'Europe/Riga' timezone in TZ environment variable. | adrian | edgars@way.lv | 0 | 0 | 0 | 0 | 0 | 0 | ||
189 | 2005-07-25 14:02:53 | 2007-07-15 05:20:31 | 2022-03-06 03:20:01.962840 | Ready for checkin | closed | contrib.admin | defect | normal | fixed | Inline editing of foreign keys doesn't do pretty error handling. | When adding/editing foreign keys in the admin interface, any violation of NOT NULL or other schema specifications will throw a traceback rather than a pretty "this is what you did wrong" explanation when adding foreign keys manually. {{{ There's been an error: Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/core/handlers/base.py", line 63, in get_response return callback(request, **param_dict) File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/views/admin/main.py", line 860, in change_stage new_object = manipulator.save(new_data) File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/core/meta.py", line 87, in _curried return args[0](*(args[1:]+moreargs), **dict(kwargs.items() + morekwargs.items())) File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/core/meta.py", line 1479, in manipulator_save new_rel_obj.save() File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/core/meta.py", line 87, in _curried return args[0](*(args[1:]+moreargs), **dict(kwargs.items() + morekwargs.items())) File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/core/meta.py", line 765, in method_save (opts.db_table, ','.join(field_names), ','.join(placeholders)), db_values) File "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/core/db/base.py", line 10, in execute result = self.cursor.execute(sql, params) IntegrityError: ERROR: null value in column "votes" violates not-null constraint INSERT INTO polls_choices (poll_id,choice,votes) VALUES ('1','This is making me hungry ;-)',NULL) }}} | adrian | Nick Stenning | admin interface error handling schema null fields | 0 | 0 | 0 | 0 | 0 | 0 | |
190 | 2005-07-25 14:09:46 | 2005-08-01 05:46:24 | 2022-03-06 03:20:02.137205 | Unreviewed | closed | Template system | defect | normal | wontfix | Add which template a syntax error is occurring in when you raise TemplateSyntaxErrors | Right now, if there's a TemplateSyntaxError, django throws an exception telling you what's missing, or what's gone wrong. It would be nice for Django to tell me in which of the various nested templates I'm using on any given URL the syntax error occurs. Even better if you could manage a line number. | adrian | Moof <moof@metamoof.net> | 0 | 0 | 0 | 0 | 0 | 0 | ||
191 | 2005-07-25 14:11:10 | 2007-07-16 04:04:19 | 2022-03-06 03:20:02.302370 | Ready for checkin | closed | Core (Other) | defect | normal | invalid | Pydoc integration | I turned on pydoc to see what the api looked like and I received a few errors. You may want to look and see how to get that working. | adrian | Eric Moritz(slashzero) | 0 | 0 | 0 | 0 | 0 | 0 | ||
192 | 2005-07-25 16:33:03 | 2006-10-26 15:44:00 | 2022-03-06 03:20:02.466952 | Unreviewed | closed | Core (Other) | defect | major | 1.1 | fixed | FileUploads with builtin HTTPServer and wsgi-handler won't works | {{{ utils/httpwrappers.py, Line 40: ------------------------- msg = email.message_from_string(raw_message) # *** POST = datastructures.MultiValueDict() FILES = datastructures.MultiValueDict() for submessage in msg.get_payload(): if isinstance(submessage, email.Message.Message): # **** ------------------------- }}} Description: msg.is_multipart() at (***) marker is always False (coz raw_message haven't content-type header, look at core/handlers/wsgi.py, Line 31), so msg.get_payload() at (****) is always a String, not email.Message ! | adrian | mordaha@gmail.com | file upload | 0 | 0 | 0 | 0 | 0 | 0 |
193 | 2005-07-25 17:55:23 | 2006-10-31 13:37:52 | 2022-03-06 03:20:02.628688 | Unreviewed | closed | Core (Other) | defect | normal | fixed | Uploaded binary files are corrupted on Windows | On Windows, binary files have to be written to disk with the 'b' flag, otherwise all line-endings are converted to CRLF. Line 979 in source:django/trunk/django/core/meta.py#293 should be changed to: {{{ #!python fp = open(getattr(self, 'get_%s_filename' % field.name)(), 'wb') }}} Currently all uploaded files are written to disk as text files. Binary files get corrupted as any CR or LF byte is replaced with a CRLF. | adrian | Steadicat | 0 | 0 | 0 | 0 | 0 | 0 | ||
194 | 2005-07-25 18:03:38 | 2006-08-29 12:00:10 | 2022-03-06 03:20:02.818790 | Unreviewed | closed | Core (Other) | defect | normal | fixed | get_image_dimensions does not work on Windows | In source:django/trunk/django/utils/images.py#3, get_image_dimensions does not work on Windows because the image file is not read as a binary file. Line 11 should read: {{{ #!python fp = open(path, 'rb') }}} | adrian | Steadicat | 0 | 0 | 0 | 0 | 0 | 0 | ||
195 | 2005-07-25 18:55:15 | 2006-11-06 02:25:47 | 2022-03-06 03:20:02.972537 | Unreviewed | closed | Core (Other) | defect | normal | fixed | Patch: Allow callables in the extra_context dictionary of django.views.generic.date_based | Sometimes you want to add extra context to your generic views that needs to be recalculated every time. For example you currently have {{{<li><a href="/weblog/2005/jul/">July 2005</a></li>}}} in the static part of source:/djangoproject.com/django_website/templates/base_weblog.html because you can't pass an auto-generated list of months into the template, as it would get generated when the url map is generated. The easiest way to solve this is to allow callables in the extra_context dictionary. Define a function or lambda which returns the data you want in the context when it's called, and then put a reference to it in the extra_context dict. Example adapted from source:/djangoproject.com/django_website/apps/blog/urls/blog.py : {{{ #!python info_dict = { 'app_label': 'blog', 'module_name': 'entries', 'date_field': 'pub_date', 'extra_context': { 'month_list': lambda: reverse(entries.get_pub_date_list('month', pub_date__lte=datetime.datetime.now())) } } }}} Attached is a patch that enables this behaviour | adrian | Moof <moof@metamoof.net> | 0 | 0 | 0 | 0 | 0 | 0 | ||
196 | 2005-07-25 19:15:04 | 2007-07-03 23:04:49 | 2022-03-06 03:20:03.306994 | Design decision needed | closed | Core (Other) | defect | normal | fixed | Patch: Allow integer months in views.generic.date_based | While the three-letter months are nice and pretty, they are not international-safe. Given that most web hosting servers don't allow you to set the locale, and even if it did you might be hosting more than one language on the box. So a poor Spaniard will be wondering why he's looking at "jan" rather than "ene" if hosted on an English server. The following patch keeps the three-letter months as an option in the various views that use months, but also allows for one- or two-digit month numbers. | adrian | Moof <moof@metamoof.net> | 0 | 0 | 0 | 0 | 0 | 0 | ||
197 | 2005-07-25 21:01:23 | 2007-07-03 23:04:42 | 2022-03-06 03:20:03.512815 | Unreviewed | closed | contrib.admin | defect | normal | fixed | Adding a flatfile causes a traceback in sqlite3.py | Here is the taceback: {{{ There's been an error: Traceback (most recent call last): File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py", line 63, in get_response return callback(request, **param_dict) File "/usr/lib/python2.4/site-packages/django/views/admin/main.py", line 765, in add_stage new_object = manipulator.save(new_data) File "/usr/lib/python2.4/site-packages/django/core/meta.py", line 87, in _curried return args[0](*(args[1:]+moreargs), **dict(kwargs.items() + morekwargs.items())) File "/usr/lib/python2.4/site-packages/django/core/meta.py", line 1464, in manipulator_save was_changed = getattr(new_object, 'set_%s' % f.name)(new_data.getlist(f.name)) File "/usr/lib/python2.4/site-packages/django/core/meta.py", line 87, in _curried return args[0](*(args[1:]+moreargs), **dict(kwargs.items() + morekwargs.items())) File "/usr/lib/python2.4/site-packages/django/core/meta.py", line 922, in method_set_many_to_many cursor.executemany(sql, [(this_id, i) for i in ids_to_add]) File "/usr/lib/python2.4/site-packages/django/core/db/base.py", line 20, in executemany result = self.cursor.executemany(sql, param_list) File "/usr/lib/python2.4/site-packages/django/core/db/backends/sqlite3.py", line 59, in executemany query = self.convert_query(query, len(params)) File "/usr/lib/python2.4/site-packages/django/core/db/backends/sqlite3.py", line 64, in convert_query return query % tuple("?" * num_params) TypeError: not enough arguments for format string }}} | jacob | mmarshall | 0 | 0 | 0 | 0 | 0 | 0 | ||
198 | 2005-07-25 21:26:45 | 2007-07-03 23:04:24 | 2022-03-06 03:20:03.741449 | Ready for checkin | closed | Contrib apps | enhancement | critical | magic-removal | fixed | istartswith doesn't work | istartswith is not working. | adrian | brantley (deadwisdom@gmail.com) | database lookup | 0 | 0 | 0 | 0 | 0 | 0 |
199 | 2005-07-25 21:31:55 | 2006-10-22 16:12:44 | 2022-03-06 03:20:03.942319 | Unreviewed | closed | Metasystem | defect | trivial | fixed | CharField should raise an exception when maxlength is not specified | "maxlength" is a required keyword argument for a CharField, yet no error is raised if the argument is not provided. The error produces its effect much later when the SQL code containing "varchar(None)" fails. It would be better for CharField to raise an exception immediately, so as to simplify debugging. | adrian | Steadicat | 0 | 0 | 0 | 0 | 0 | 0 | ||
200 | 2005-07-25 23:28:37 | 2007-05-21 01:48:27 | 2022-03-06 03:20:04.139840 | Design decision needed | closed | Database layer (models, ORM) | enhancement | normal | fixed | Add a Decimal type and a Currency type | Add a DecimalField type that maps between python's Decimal type and [http://dev.mysql.com/doc/mysql/en/numeric-types.html mySQL's] and [http://www.postgresql.org/docs/8.0/static/datatype.html#DATATYPE-NUMERIC PostgreSQL's] NUMERIC type. I can't make head nor tail of SQLite's type system, but I assume it has some analogue. It should be possible to define the precision and scale of these types, but they should be optional. Add a CurrencyField type which is analogous to a DecimalField limited to two decimal places. Floating point numbers are not good for currency amounts, and I tire of having to convert between an integer number of cents and a string which is in Euro. | adrian | Moof <moof@metamoof.net> | 0 | 0 | 0 | 0 | 0 | 0 | ||
201 | 2005-07-26 00:52:28 | 2006-10-22 16:33:19 | 2022-03-06 03:20:04.348824 | Unreviewed | closed | contrib.admin | defect | major | invalid | ImageField validation error | Once an image has been uploaded in an ImageField (its path is shown labeled "currently"), any successive edit to the object raises a validation error: "Enter a valid filename.". This happens regardless of whether a new image is being uploaded or not. (OS: Windows, Browser: any) | adrian | Steadicat | 0 | 0 | 0 | 0 | 0 | 0 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE tickets ( id int primary key, created datetime, changetime datetime, last_pulled_from_trac datetime, stage text, status text, component text, type text, severity text, version text, resolution text, summary text, description text, owner text, reporter text, keywords text, easy boolean, has_patch boolean, needs_better_patch boolean, needs_tests boolean, needs_docs boolean, ui_ux boolean );