tickets
32,817 rows sorted by type
This data as json, CSV (advanced)
Suggested facets: stage, status, type, severity, resolution, ui_ux, created (date), changetime (date), last_pulled_from_trac (date)
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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
12 | 2005-07-13 19:19:38 | 2007-07-03 23:03:44 | 2022-03-06 03:19:24.890200 | Unreviewed | closed | Metasystem | normal | fixed | Add metasystem database-check functionality | We should automate the checking of whether everything is properly installed in the database for a particular app. For instance, a command such as {{{django-admin.py dbcheck news}}} would: * Check that the package exists in the DB. * Check that all the permissions exist in the DB. * Check that there aren't any *extra* permissions in the DB that the model doesn't know about. * Check that all the content types exist in the DB. * Check that there aren't any *extra* content types in the DB for this app. * Check that there aren't any missing fields. * Check that the fields are in the correct data type. | adrian | adrian | 0 | 0 | 0 | 0 | 0 | 0 | |||
16 | 2005-07-13 19:24:03 | 2007-05-30 21:27:58 | 2022-03-06 03:19:25.856417 | Design decision needed | closed | contrib.admin | normal | invalid | Create some form of "edit many at once" feature for the admin | {{{ [5:54 pm] jacobkm: Hey, what do you think of making a general purpose CSV export/import for all admin pages? [5:54pm] jacobkm: A way for data entry folks to get lots of info in quickly? [5:56pm] django34: Sounds like a good idea...How would it handle many-to-one related objects? [5:56pm] jacobkm: I'm not sure, but probably just with IDs [5:56pm] jacobkm: Or maybe it wouldn't work if there are relations [5:57pm] django34: Do you have a use-case in mind? [5:57pm] jacobkm: Yeah -- Billy's been entering rosters/schedules/etc all day, and it's a PITA [5:58pm] jacobkm: I could write an excel importer for him, but it would take almost as long [5:58pm] django34: All of those things have related objects, don't they? [5:58pm] django34: I guess a roster doesn't, if it's just players [6:01pm] jacobkm: Well, it's got the team id [6:02pm] django34: But it doesn't have "many" of something else [6:02pm] jacobkm: I don't think any of them do... [6:03pm] django34: such as a team has many players [6:03pm] jacobkm: It could be an optional admin feature like the add as new thing [6:04pm] jacobkm: It's just that our admin isn't ideal when it comes to entering a *lot* of information. [6:04pm] django34: agreed [6:04pm] jacobkm: I think it would probably be dangerous, so we should be careful about who gets to use it [6:05pm] django34: There would be some usability issues, such as what to do if 5 records are submitted but one of them has an error in it [6:05pm] jacobkm: Yeah [6:05pm] jacobkm: I'd say all or nothing, probably. [6:06pm] django34: "There was an error in the 'player name' field in record #4" [6:06pm] django34: Not that bad [6:06pm] jacobkm: Right, exactly [6:06pm] jacobkm: (I did something like this for the CMS I build at IDSociety, except it had *no* error checking at all and was bascially a shortcut for me alone) [6:07pm] django34: I don't see a huge problem with adding this functionality to every admin item [6:07pm] jacobkm: How would it handle ManyToMany relations? [6:07pm] jacobkm: That's … | adrian | adrian | 0 | 0 | 0 | 0 | 0 | 0 | |||
96 | 2005-07-20 00:12:31 | 2007-07-03 23:03:54 | 2022-03-06 03:19:42.268275 | Design decision needed | closed | *.djangoproject.com | normal | fixed | Coment counts on the djangoproject.com weblog | It would be useful to see the number of comments on each entry attached to both the front page of the weblog and the front page of the site. | jacob | Simon Willison | 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 | |||
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 | |||
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 | |
211 | 2005-07-27 14:51:25 | 2007-01-17 22:12:17 | 2022-03-06 03:20:05.958313 | Unreviewed | closed | Metasystem | trivial | fixed | [Patch] Remove edit_inline_type / edit_inline verbosity | {{{edit_inline_type}}} and {{{edit_inline}}} are redundant; {{{edit_inline_type != None}}} implies {{{edit_inline=True}}} | adrian | jacob | 0 | 0 | 0 | 0 | 0 | 0 | |||
233 | 2005-07-30 11:58:09 | 2006-10-16 14:53:52 | 2022-03-06 03:20:09.788255 | Unreviewed | closed | Core (Other) | normal | invalid | Using ImageField without PIL | Using PIL to extract width and height of the image is not necessary. For that I'm using handy function that I got from draco [http://draco.boskant.nl/]: Works for GIF, PNG and JPEG formats. Also, maybe is useful to cache results of function to avoid accessing to file system frequently. Another good idea from draco is the IMG tag rewriter which automatically adds image width and height to img tags. Can this be added to template system? {{{ def _imageInfo(fhandle): """ Determine the image type of fhandle and return its size. from draco """ head = fhandle.read(24) if len(head) != 24: return if head[:4] == '\x89PNG': # PNG check = struct.unpack('>i', head[4:8])[0] if check != 0x0d0a1a0a: return width, height = struct.unpack('>ii', head[16:24]) img_type = 'PNG' elif head[:6] in ('GIF87a', 'GIF89a'): # GIF width, height = struct.unpack('<HH', head[6:10]) img_type = 'GIF' elif head[:4] == '\xff\xd8\xff\xe0' and head[6:10] == 'JFIF': # JPEG img_type = 'JPEG' try: fhandle.seek(0) # Read 0xff next size = 2 ftype = 0 while not 0xc0 <= ftype <= 0xcf: fhandle.seek(size, 1) byte = fhandle.read(1) while ord(byte) == 0xff: byte = fhandle.read(1) ftype = ord(byte) size = struct.unpack('>H', fhandle.read(2))[0] - 2 # We are at a SOFn block fhandle.seek(1, 1) # Skip `precision' byte. height, width = struct.unpack('>HH', fhandle.read(4)) except Exception: #IGNORE:W0703 return else: return return img_type, width, height # imageSize }}} | adrian | nesh <nesh [at] studioquattro [dot] co [dot] yu> | 0 | 0 | 0 | 0 | 0 | 0 | |||
276 | 2005-08-05 06:07:58 | 2007-07-03 23:05:24 | 2022-03-06 03:20:16.351121 | Ready for checkin | closed | Template system | normal | fixed | [patch] new template tag 'strip' | Useful extension to templatetags (idea copied from smarty) Used when you build colored diagramms by images If you add it to a default set it will be nice ;) {{{ strip_re = re.compile(">\s*") class StripNode(template.Node): def __init__(self, nodelist): self.nodelist = nodelist def __iter__(self): for node in self.nodelist: yield node def get_nodes_by_type(self, nodetype): nodes = [] if isinstance(self, nodetype): nodes.append(self) nodes.extend(self.nodelist.get_nodes_by_type(nodetype)) return nodes def render(self, context): content = self.nodelist.render(context) content = strip_re.sub('>', content) return content def do_strip(parser, token): """ Strips spaces and newlines after html tags '>\s*' --> '>' {% strip %} <img /> text <img /> {% endstrip %} Will be: <img />text <img /> """ bits = token.contents.split() if len(bits) > 2: raise template.TemplateSyntaxError, "'%s' tag don't takes arguments" % bits[0] nodelist = parser.parse(('endstrip',)) parser.delete_first_token() return StripNode(nodelist) template.register_tag('strip', do_strip) }}} | adrian | mr_little | template tag strip | 0 | 1 | 0 | 0 | 0 | 0 | ||
290 | 2005-08-09 00:40:53 | 2006-10-07 13:31:40 | 2022-03-06 03:20:18.405728 | Unreviewed | closed | Documentation | normal | fixed | Typo in tutorial 4? | Tutorial 4, below the generic views code listing: Similarly, the object_list generic view uses a template called <app_label>/<module_name>_detail. Thus, rename polls/index.html to polls/polls_list.html. <app_label>/<module_name>_detail should read <app_label>/<module_name>_list (I think) | jacob | Matt Croydon | 0 | 0 | 0 | 0 | 0 | 0 | |||
333 | 2005-08-16 21:44:34 | 2007-07-03 23:05:38 | 2022-03-06 03:20:26.166126 | Design decision needed | closed | Core (Other) | normal | fixed | HttpResponse should get a default charset | The default charset for a HttpResponse should be utf-8 and should be sent out with the Content-type header. If users want to change that, they can override the charset, but by default Django just sends our text/html without a specified charset. | adrian | hugo <gb@bofh.ms> | 0 | 0 | 0 | 0 | 0 | 0 | |||
349 | 2005-08-17 20:27:50 | 2007-01-17 22:12:17 | 2022-03-06 03:20:29.434190 | Unreviewed | closed | contrib.admin | normal | fixed | [patch] Bad styling in Admin interface | Both Internet Explorer 6 and Firefox 1.0.6 (on PC) have visualization problems with Admin interface. 1) FF doesn't show default button (Save in my example). It draws it white on white making text invisible. Screenshot: http://www.lazutkin.com/ff.jpg 2) IE shows buttons but as far as I can tell while it is not shown correctly, it is visible and usable. The bigger problem is incomplete background of collapsed fieldset ("Date information" in my example). Screenshot: http://www.lazutkin.com/ie6.jpg 3) Both browsers have almost invisible text for collapsed fieldsets. See examples above. | jacob | eugene@lazutkin.com | 0 | 1 | 0 | 0 | 0 | 0 | |||
380 | 2005-08-21 02:59:25 | 2007-07-03 23:06:03 | 2022-03-06 03:20:33.798748 | Unreviewed | closed | Documentation | normal | 1.0 | fixed | Tutorial 1, missing specific directory information | At the step: Now Django knows myproject includes the polls app. Let's run another command: There is no indication of where this command should be run. The most recent command that had specified a directory location was at: To create your app, change into the myproject/apps directory and type this command: | adrian | ssteiner | tutorial1, directory | 0 | 0 | 0 | 0 | 0 | 0 | |
442 | 2005-08-30 21:52:05 | 2007-07-03 23:06:12 | 2022-03-06 03:20:43.769143 | Design decision needed | closed | contrib.admin | normal | duplicate | Admin interface throws errors that aren't displayed | The administrative interface will warn of an error when saving an object, but will not display an explanation for that error. See included screenshot. | adrian | Alex Payne <al3x@al3x.net> | 0 | 0 | 0 | 0 | 0 | 0 | |||
450 | 2005-09-01 16:54:58 | 2006-06-12 12:10:42 | 2022-03-06 03:20:45.009964 | Unreviewed | closed | Generic views | normal | wontfix | [patch] Give generic views support for dynamic lookup keywords | I have a database with weather data with daily updates for each weather station in the area. My first thought was to use the date base generic views. I wanted to be able to specify the station_id in the url so that the url is something like /weather/KAPF/2005 , but the generic view will only allow you to specify extra lookup keywords in the url pattern module, not dynamically in the url. What I created was an extra argument called: 'dynamic_lookup_kwargs' Simply use that the same way as the extra_lookup_kwargs except that you use the url keyword name instead of a hard coded value. So for the pattern: {{{ (r'^(?P<station_id>\w{4})/(?P<year>\d{4})/$','archive_year', info_dict), }}} We would define the dynamic_lookup_kwargs as: {{{ info_dict = { ... 'dynamic_lookup_kwargs' : { 'station_id__exact' : 'station_id' } ... } }}} | jacob | slashzero | 0 | 1 | 0 | 0 | 0 | 0 | |||
459 | 2005-09-04 07:34:43 | 2006-06-12 11:17:16 | 2022-03-06 03:20:46.382760 | Unreviewed | closed | Tools | trivial | fixed | setup.py: admin_templates/registration/*.html is not to installed | 'admin_templates/registration/*.html' is ignored in setup.py and not to be installed. {{{ --- setup.py (revision 576) +++ setup.py (working copy) @@ -14,6 +14,7 @@ packages = find_packages(), package_data = { 'django.conf': ['admin_templates/*.html', 'admin_templates/doc/*.html', + 'admin_templates/registration/*.html', 'admin_media/css/*.css', 'admin_media/img/admin/*.gif', 'admin_media/img/admin/*.png', 'admin_media/js/*.js', 'admin_media/js/admin/*js'], }}} | adrian | igor@jahber.org | 0 | 0 | 0 | 0 | 0 | 0 | |||
498 | 2005-09-13 12:14:41 | 2017-01-30 20:01:11 | 2022-03-06 03:20:52.788543 | Unreviewed | closed | contrib.syndication | normal | fixed | Atom support, not just RSS | * There should be templates for easy Atom support. * RSS support should may be be renamed to syndication or something? | adrian | Manuzhai | 0 | 0 | 0 | 0 | 0 | 0 | |||
499 | 2005-09-13 15:48:37 | 2006-10-27 17:12:47 | 2022-03-06 03:20:52.960845 | Unreviewed | closed | Template system | major | new-admin | fixed | [patch] method_save() empty value fix | Hi, I've found a bug in django.core.meta in function method_save which would create SQL statementes with an empty value such as name='' when updating. Those queries would fail (postgresql and mysql). Here is a patch. It fixed my problem but I haven't tested it very thoroughly so typical discalimers apply :). Probably can be done better so feel free to improve. Great software, I'm so happy to have an excuse to improve my Python skills.... {{{ *** django/core/meta/__init__.py.orig 2005-09-13 17:34:54.591722120 +0200 --- django/core/meta/__init__.py 2005-09-13 17:31:55.037018584 +0200 *************** *** 782,787 **** --- 782,793 ---- # If it does already exist, do an UPDATE. if cursor.fetchone(): db_values = [f.get_db_prep_save(f.pre_save(getattr(self, f.column), False)) for f in non_pks] + while 1: + try: + idx = db_values.index('') + non_pks[idx:idx+1] = [] + db_values[idx:idx+1] = [] + except: break cursor.execute("UPDATE %s SET %s WHERE %s=%%s" % (opts.db_table, ','.join(['%s=%%s' % f.column for f in non_pks]), opts.pk.column), db_values + [pk_val]) else: }}} | adrian | alberto@toscat.com | 0 | 1 | 0 | 0 | 0 | 0 | ||
582 | 2005-10-01 09:10:38 | 2006-10-13 19:37:15 | 2022-03-06 03:21:07.718352 | Unreviewed | closed | Template system | normal | fixed | [patch] Load templates from application eggs | The attached patch changes django.core.template_loader to try several different template-source-loaders; first it tries the vanilla django.core.template_file loader; then it tries the new django.core.template_eggs loader. The new loader tries to load the named template from 'templates/%s' % name for each installed app. So one can package an app as a python egg and distribute it as one file with default templates included, and installation is as simple as dropping it somewhere in sys.path :) | adrian | sune.kirkeby@gmail.com | apps eggs templates | 0 | 1 | 0 | 0 | 0 | 0 | ||
1785 | 2006-05-06 20:43:01 | 2006-10-16 14:21:33 | 2022-03-06 03:24:16.406080 | Unreviewed | closed | Core (Other) | major | fixed | debug.py assumes _get_lines_from_file() doesn't return None | if an error occurs during view processing, debug.py has a bug such that, on occasion, debug traceback printing fails and you cannot see what your error was. Here's the debug.py traceback. Also see the attached patch for a fix that works in my development environment. Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C. [06/May/2006 13:39:57] "GET /rate/1/3?dojo.transport=xmlhttp& HTTP/1.1" 301 0 Traceback (most recent call last): File "/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/core/servers/basehttp.py", line 272, in run self.result = application(self.environ, self.start_response) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/core/servers/basehttp.py", line 615, in __call__ return self.application(environ, start_response) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/core/handlers/wsgi.py", line 145, in __call__ response = self.get_response(request.path, request) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/core/handlers/base.py", line 100, in get_response return self.get_technical_error_response(request) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/core/handlers/base.py", line 133, in get_technical_error_response return debug.technical_500_response(request, *sys.exc_info()) File "/opt/local/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/site-packages/django/views/debug.py", line 100, in technical_500_response frames.append({ TypeError: unsupported operand type(s) for +: 'NoneType' and 'int' [06/May/2006 13:39:57] "GET /rate/1/3/?dojo.transport=xmlhttp HTTP/1.1" 500 1349 | adrian | django@binaryfeed.org | 0 | 0 | 0 | 0 | 0 | 0 | |||
1819 | 2006-05-09 11:29:53 | 2006-11-06 11:05:25 | 2022-03-06 03:24:22.618168 | Unreviewed | closed | Database layer (models, ORM) | minor | dev | fixed | [patch] Inspectdb generates CharFields with null | Inspectdb generates CharFields with null=true for mysql tables that have attributes which allow Null values. This is not Django convention: "null If True, Django will store empty values as NULL in the database. Default is False. Note that empty string values will always get stored as empty strings, not as NULL -- so use null=True for non-string fields such as integers, booleans and dates. Avoid using null on string-based fields such as CharField and TextField unless you have an excellent reason. If a string-based field has null=True, that means it has two possible values for "no data": NULL, and the empty string. In most cases, it's redundant to have two possible values for "no data;" Django convention is to use the empty string, not NULL." -- source: http://www.djangoproject.com/documentation/model_api/ | adrian | remco@diji.biz | 0 | 1 | 0 | 0 | 0 | 0 | ||
1872 | 2006-05-15 06:04:42 | 2006-06-12 12:10:06 | 2022-03-06 03:24:31.444499 | Unreviewed | closed | Documentation | normal | invalid | Documentation: module level methods | The documentation on module level methods has disappeared. Pre-MR this was _module_methods. I think post-MR we can used @staticmethod and @classmethod. It would be nice if this was explicity stated in the docs. This is different from Manager table wide methods - I think. | jacob | bnomis@gmail.com | 0 | 0 | 0 | 0 | 0 | 0 | |||
1995 | 2006-05-24 19:32:51 | 2006-10-13 19:37:30 | 2022-03-06 03:24:50.161639 | Unreviewed | closed | Core (Other) | trivial | dev | wontfix | Comments system: Change "Forgotten your password?" to "Forgot your password?" | This is in {{{django/contrib/comments/templates/comments/form.html}}} : {{{ {% trans "Forgotten your password?" %} }}} Proper English would be either "Forgot your password?" or "Have you fogotten your password?". Our editor made me change this :D | adrian | dave@rightround.com | 0 | 0 | 0 | 0 | 0 | 0 | ||
1997 | 2006-05-24 20:20:17 | 2006-10-07 14:04:22 | 2022-03-06 03:24:50.416097 | Unreviewed | closed | Core (Other) | normal | magic-removal | fixed | [PATCH] comments.py was using an absolute URL for redirects | Comment forms were using absolute URLs when redirecting from a successful form posting i.e. /comments/posted/, when really this should be a relative URL, in the style of ../posted/ | adrian | phil@produxion.net | 0 | 0 | 0 | 0 | 0 | 0 | ||
2000 | 2006-05-25 04:21:38 | 2006-06-12 11:00:18 | 2022-03-06 03:24:50.839833 | Unreviewed | closed | Generic views | normal | fixed | [patch] allow generic views to respond with non text/html content types | I needed to have a page respond with a text/plain content type. here's the patch {{{ Index: views/generic/list_detail.py =================================================================== --- views/generic/list_detail.py (revision 2970) +++ views/generic/list_detail.py (working copy) @@ -6,7 +6,8 @@ def object_list(request, queryset, paginate_by=None, allow_empty=False, template_name=None, template_loader=loader, - extra_context={}, context_processors=None, template_object_name='object'): + extra_context={}, context_processors=None, template_object_name='object', + mimetype=None): """ Generic list of objects. @@ -73,12 +74,13 @@ model = queryset.model template_name = "%s/%s_list.html" % (model._meta.app_label, model._meta.object_name.lower()) t = template_loader.get_template(template_name) - return HttpResponse(t.render(c)) + return HttpResponse(t.render(c), mimetype=mimetype) def object_detail(request, queryset, object_id=None, slug=None, slug_field=None, template_name=None, template_name_field=None, template_loader=loader, extra_context={}, - context_processors=None, template_object_name='object'): + context_processors=None, template_object_name='object', + mimetype=None): """ Generic list of objects. @@ -113,6 +115,6 @@ c[key] = value() else: c[key] = value - response = HttpResponse(t.render(c)) + response = HttpResponse(t.render(c), mimetype=mimetype) populate_xheaders(request, response, model, getattr(obj, obj._meta.pk.name)) return response }}} | jacob | ian@holsman.net | 0 | 1 | 0 | 0 | 0 | 0 | |||
2017 | 2006-05-27 03:29:56 | 2006-06-12 11:16:23 | 2022-03-06 03:24:53.655114 | Unreviewed | closed | Contrib apps | normal | duplicate | Standardisation of urlpatterns in django.contrib.comments | django.contrib.comment's urls are in django/contrib/comments/urls/comments.py, ( i.e. so you have to include( django.contrib.comments.urls.comments ) ), in contrast stuff like django.contrib.admin's is directly in django/contrib/admin/urls.py => include ( django.contrib.urls ). | adrian | Simon Greenhill, dev@simon.net.nz | 0 | 0 | 0 | 0 | 0 | 0 | |||
2023 | 2006-05-28 09:03:38 | 2008-01-28 06:05:59 | 2022-03-06 03:24:54.577506 | Unreviewed | closed | contrib.admin | normal | dev | fixed | "View on site" breaks when model specifies primary key other than ID | Model A: {{{ class Photo(models.Model): title = models.CharField(maxlength = 50) slug = models.SlugField('Slug', prepopulate_from = ('title',), help_text='Use auto-suggestion or a simple text string.', ) [...more stuff, ImageField, etc...] }}} Model B: {{{ class Photo(models.Model): title = models.CharField(maxlength = 50) slug = models.SlugField('Slug', prepopulate_from = ('title',), help_text='Use auto-suggestion or a simple text string.', primary_key='True') [...more stuff, ImageField, etc...] }}} Model A works fine in the admin (i.e. you can click on "View on site" and you can view the photo), Model B however gives you a 404. Looking at the relevant entry for urls.py from the admin it seems that this expects a numerical primary key and therefor breaks when e.g. the slug becomes primary key. Note: using the slug as primary key came from copy-and-pasting an example I found on the web, not sure if this frowned upon anyway. | adrian | emeraldjunk-django@yahoo.com | 0 | 0 | 0 | 0 | 0 | 0 | ||
2029 | 2006-05-29 09:43:22 | 2006-10-13 19:38:33 | 2022-03-06 03:24:55.478909 | Unreviewed | closed | contrib.admin | normal | fixed | [patch] Fix sorting models by verbose_name_plural in get_admin_app_list template tag | Now it sorts models just by doing model_list.sort() and it don't work when you have custom verbose_name_plural set in your model, for example in UserProfile model verbose_name_plural set to 'address book'. Patch below fixes this to correctly sort based on verbose_name_plural. | adrian | Alex Dedul | 0 | 1 | 0 | 0 | 0 | 0 | |||
2047 | 2006-05-31 09:00:32 | 2006-10-22 15:54:58 | 2022-03-06 03:24:58.021357 | Unreviewed | closed | Documentation | minor | dev | fixed | [PATCH] Tutorial 3 text does not reflect reality for error message | Tutorial 3 has a part that reads: {{{ TemplateDoesNotExist: Your TEMPLATE_DIRS settings is empty. Change it to point to at least one template directory. }}} When you try this yourself you will see something more like: {{{ TemplateDoesNotExist at /polls/ polls/index.html }}} Nowhere on the DEBUG page does it list anything remotely resembling stating that the TEMPLATE_DIRS settings is empty. | jacob | asmodai@in-nomine.org | 0 | 0 | 0 | 0 | 0 | 0 | ||
2122 | 2006-06-09 03:43:53 | 2008-10-13 00:15:01 | 2022-03-06 03:25:09.901974 | Accepted | closed | Core (Other) | normal | dev | fixed | get_FIELDNAME_display() fails on instance returned by AddManipulator.save(). | Invoking get_FIELDNAME_display() on a model instance returned by MODELNAME.AddManipulator.save() does not produce the expected result. After working with malcolmt on #django we decided it might be a good idea to file a ticket. Problem: the value returned by get_FIELDNAME_display() is the string representation of the field itself rather than the decoded field value. The database seems to be intact, so I'd guess the severity/priority to be normal. Possible work arounds include using the saved instance (after extracting it from the db) rather than the instance returned by MODELNAME.AddManipulator.save(). Here's a simple example. I've included an "Example" model rather than the actual model to simplify the description of the problem. {{{ IFIELD_CHOICES = ( (0, 'foo'), (1, 'bar'), (2, 'baz'), ) DEFAULT_IFIELD_CHOICE = 1 class Example(models.Model): ifield = models.IntegerField(choices=IFIELD_CHOICES, default=DEFAULT_IFIELD_CHOICE, blank=False) another_field = models.CharField(maxlength=16, blank=False) def __str__(self): return '%s: %s' % (self.get_ifield_display(), self.another_field) class Admin: pass }}} Given this model, the following code redirects to '1' when an Example is successfully saved. I'd expect it to redirect to 'bar'. {{{ def example_add_form(request): """Add an example to the db.""" manipulator = Example.AddManipulator() new_data = {} errors = {} if request.POST: new_data = request.POST.copy() # Need mutable POST data. errors = manipulator.get_validation_errors(new_data) if not errors: manipulator.do_html2python(new_data) # Note: isinstance(new_data['top_level'], str) # returns True here example = manipulator.save(new_data) return HttpResponse(example.get_ifield_display()) # C… | nobody | bbarry@unh.edu | 0 | 0 | 0 | 1 | 0 | 0 | ||
3317 | 2007-01-18 00:46:09 | 2007-01-19 03:18:51 | 2022-03-06 03:28:23.732540 | Ready for checkin | closed | Documentation | dev | fixed | Typoes in testing.txt | Hi, I was reading [source:django/trunk/docs/testing.txt] and I found what seem two typoes, at least I think so ;) I attach a patch with the differences. | jacob | Marc Fargas <telenieko@telenieko.com> | 0 | 1 | 0 | 0 | 0 | 0 | |||
3318 | 2007-01-18 01:37:31 | 2007-01-19 03:17:23 | 2022-03-06 03:28:23.888603 | Ready for checkin | closed | Documentation | dev | fixed | Out of date info on contributing.txt | [source:django/trunk/docs/contributing.txt] has some info about patches that is actually outdated and includes a link to a report which no longer exists. The attached patch replaces the link to the no longer existing report 8 to a Custom Query to all tickets with the "Has Patch" checkbox marked. I didn't use the already available report [http://code.djangoproject.com/query?status=new&status=assigned&status=reopened&stage=Ready+for+checkin Tickets with patches ready for checkin] because on context the link should point to "all" tickets that have a patch, not only the ones marked ready for checkin. | jacob | Marc Fargas <telenieko@telenieko.com> | 0 | 1 | 0 | 0 | 0 | 0 | |||
3319 | 2007-01-18 10:11:55 | 2007-02-26 21:36:14 | 2022-03-06 03:28:24.044214 | Ready for checkin | closed | Documentation | dev | fixed | [patch] django-admin.py/manage.py documentation missing a couple options | The [http://www.djangoproject.com/documentation/django_admin/ official documentation] for `django-admin.py` and `manage.py` are missing documentation for two options: `reset` and `runfcgi`. The `reset` docs should be fairly simple to add, and I can work up a patch easily enough. I'm not sure about the best way to handle `runfcgi`, though; perhaps it should give a short summary (e.g., "launches the project as a FastCGI application") and link to the [http://www.djangoproject.com/documentation/fastcgi/ FastCGI deployment docs] for further information? | jacob | ubernostrum | 0 | 1 | 0 | 0 | 0 | 0 | |||
3320 | 2007-01-18 11:16:25 | 2007-01-30 22:48:06 | 2022-03-06 03:28:24.194480 | Ready for checkin | closed | Core (Serialization) | dev | fixed | [patch] update simplejson to the 1.5 version | Bob Ippolito just released simplejson 1.5, here are the notes: '' simplejson 1.5 is a major update that provides better Python 2.5 and Windows compatibility, and two new features that control encoding (indent for pretty-printing, and separators for generating optimally compact JSON). '' This patch updates django.utils.simplejson from 1.3 to 1.5 | jacob | LawrenceOluyede <l.oluyede@gmail.com> | 0 | 1 | 0 | 0 | 0 | 0 | |||
3321 | 2007-01-18 14:28:36 | 2007-01-20 17:34:48 | 2022-03-06 03:28:24.347481 | Ready for checkin | closed | Documentation | dev | fixed | One more typo in docs/testing.txt | In docs/testing.txt, line 16: {{{ framework, and range of utilities that can be used to stimulate and }}} the next-to-last word should be "simulate"! Although Django ''is'' stimulating, too. :) | jacob | russblau@imapmail.org | 0 | 1 | 0 | 0 | 0 | 0 | |||
3322 | 2007-01-18 18:33:23 | 2011-10-09 12:44:57 | 2022-03-06 03:28:24.501124 | Accepted | closed | Database layer (models, ORM) | dev | fixed | [patch] UnicodeCursorWrapper does not accept dict-style format objects | Django supports pyformat style format parameters (eg. http://code.djangoproject.com/changeset/3038). The change intended to add unicode support for postgresql queries restricts format objects to lists and tuples. The following patch reinstates dict format object passing. | adrian | kurtiss@meetro.com | unicode-branch | 0 | 1 | 0 | 0 | 0 | 0 | ||
3323 | 2007-01-18 19:06:43 | 2007-12-02 23:18:40 | 2022-03-06 03:28:24.650622 | Ready for checkin | closed | Database layer (models, ORM) | dev | fixed | Unhelpful error message in case of unresolved string relation ('str' object has no attribute '_meta') | imagine the following model: {{{ class Test(models.model): rel = models.ForeignKey("bleh") }}} if the relation is not resolvable, in case of a typo or if it's in a different file, the user gets a rather unhelpful exception: {{{ Unhandled exception in thread started by <function inner_run at 0x2af9aa4e9668> Traceback (most recent call last): File "/home/alex/source/svn/django/django/core/management.py", line 1108, in inner_run validate() File "/home/alex/source/svn/django/django/core/management.py", line 1070, in validate num_errors = get_validation_errors(outfile) File "/home/alex/source/svn/django/django/core/management.py", line 936, in get_validation_errors for r in rel_opts.get_all_related_objects(): File "/home/alex/source/svn/django/django/db/models/options.py", line 127, in get_all_related_objects if f.rel and self == f.rel.to._meta: AttributeError: 'str' object has no attribute '_meta' }}} a quick hacky fix is attached, but i guess it should be done in django.core.management.validate | nobody | alex@gc-web.de | sprintsept14 sprintdec01 | 0 | 1 | 0 | 0 | 0 | 0 | ||
3324 | 2007-01-18 20:08:19 | 2007-05-21 01:29:58 | 2022-03-06 03:28:24.788876 | Ready for checkin | closed | Core (Serialization) | dev | fixed | FloatFields are converted to decimal and simplejson cannot serialize | when serializing objects from a MySQL DB containing FloatFields to JSON, the float values are converted to Decimal objects, which are not understood by simplejson: {{{ Traceback (most recent call last): File "blah/test.py", line 18, in ? test() File "blah/test.py", line 16, in test print serialize("json", Blah.objects.all()) File "/home/alex/source/svn/django/django/core/serializers/__init__.py", line 55, in serialize s.serialize(queryset, **options) File "/home/alex/source/svn/django/django/core/serializers/base.py", line 49, in serialize self.end_serialization() File "/home/alex/source/svn/django/django/core/serializers/json.py", line 19, in end_serialization simplejson.dump(self.objects, self.stream, cls=DateTimeAwareJSONEncoder, **self.options) File "/home/alex/source/svn/django/django/utils/simplejson/__init__.py", line 119, in dump for chunk in iterable: File "/home/alex/source/svn/django/django/utils/simplejson/encoder.py", line 220, in _iterencode for chunk in self._iterencode_list(o, markers): File "/home/alex/source/svn/django/django/utils/simplejson/encoder.py", line 143, in _iterencode_list for chunk in self._iterencode(value, markers): File "/home/alex/source/svn/django/django/utils/simplejson/encoder.py", line 223, in _iterencode for chunk in self._iterencode_dict(o, markers): File "/home/alex/source/svn/django/django/utils/simplejson/encoder.py", line 196, in _iterencode_dict for chunk in self._iterencode(value, markers): File "/home/alex/source/svn/django/django/utils/simplejson/encoder.py", line 223, in _iterencode for chunk in self._iterencode_dict(o, markers): File "/home/alex/source/svn/django/django/utils/simplejson/encoder.py", line 196, in _iterencode_dict for chunk in self._iterencode(value, markers): File "/home/alex/source/svn/django/django/utils/simplejson/encoder.py", line 231, in _iterencode for chunk in self._iterencode_default(o, markers): File "/home/alex/source/svn/djan… | jacob | alex@gc-web.de | json decimal | 0 | 1 | 0 | 0 | 0 | 0 | ||
3325 | 2007-01-18 21:00:36 | 2007-02-26 23:23:01 | 2022-03-06 03:28:24.943984 | Ready for checkin | closed | Documentation | dev | fixed | Include distribution specific notes | The installation document does not cover distribution specific notes (like which packages to install and so on) and, belive or not, there are distributions that provide Django packages!! On the attachments there is: * install.diff where a note has been added linking to "distribution specific notes" * distributions.txt where distribution specific notes could be placed, I added the ones for Debian. I put it on a separate file as those instructions can get larger and there are lots of distributions around there. To advocate for the patch: * It makes it easier for people: "apt-get install python-django python-sqlite2" and you're on the road! * User gets Django upgraded automatically (that's the nice thing of having software packaged) * It places one more site that talks about Debian hehehehe. Hope it's ok, could not find any info about "extending" the documentation. | jacob | Marc Fargas <telenieko@telenieko.com> | 0 | 1 | 0 | 0 | 0 | 0 | |||
3326 | 2007-01-19 00:08:16 | 2007-09-20 16:21:57 | 2022-03-06 03:28:25.121311 | Ready for checkin | closed | *.djangoproject.com | dev | fixed | Timeline RSS feed broken | Try this link: [http://code.djangoproject.com/timeline?ticket=on&ticket_details=on&changeset=on&wiki=on&max=50&daysback=90&format=rss] It's the RSS feed for the timeline with all checkboxes marked (daysback=90 is set by TRAC) It gives that: {{{ Internal Error Ticket changes, Ticket details event provider (TicketModule) failed: AttributeError: 'NoneType' object has no attribute 'lower' You may want to see the other kind of events from the Timeline TracGuide — The Trac User and Administration Guide }}} | nobody | Marc Fargas <telenieko@telenieko.com> | sprintsept14 | 0 | 1 | 0 | 0 | 0 | 0 | ||
3327 | 2007-01-19 02:38:51 | 2007-08-28 04:33:14 | 2022-03-06 03:28:25.278600 | Accepted | closed | *.djangoproject.com | fixed | no way to reopen tickets | sorry, this might be a bother, but i was told to reopen my ticket when replying with some info. there's no way to do that, though. i don't know how you all review tickets, so i just wanted to make sure it gets seen. thanks! ticket number is #3279. | jacob | wbyoung@mcdonogh.org | 0 | 0 | 0 | 0 | 0 | 0 | ||||
3328 | 2007-01-19 03:08:05 | 2007-09-16 16:06:46 | 2022-03-06 03:28:25.441828 | Design decision needed | closed | Database layer (models, ORM) | dev | wontfix | null=True should imply blank=True | For models, I can't ever think of a case when you would want `null=True` and '''not''' want `blank=True`. If there is, it's definitely rare, so having to enter both for the normal case seems redundant. Currently, for model fields, `blank` always defaults to `False`. This proposal is that `blank` is set to whatever `null` is set to unless explicitly given. | nobody | SmileyChris | 0 | 1 | 0 | 0 | 0 | 0 | |||
3329 | 2007-01-19 10:28:25 | 2007-02-15 00:07:08 | 2022-03-06 03:28:25.584437 | Ready for checkin | closed | Internationalization | dev | fixed | [patch] Catalan translation | Attached are the .po files for the Catalan translation. Just take this in consideration: * I'm not a Catalan teacher, and never was a good student at the subject. my only real trouble is with à è é í ó ò ú, if somebody finds a mistake please update ;) * On latin laguanges (at least) it's common to refer to the reader in a modality of the second person ("You" > "Usted", "Vosté") which has no direct translation to English, on personal sites you'd better use the usuarl second person translation ("You" > "tu"). This translation is written with the first case in mind (hence, for professional websites). Just take this in consideration, I'll write to i18n group about the implications of every approach :) | anonymous | Marc Fargas <telenieko@telenieko.com> | i18n catalan | 0 | 1 | 0 | 0 | 0 | 0 | ||
3330 | 2007-01-19 10:43:23 | 2007-01-19 11:13:35 | 2022-03-06 03:28:25.738657 | Unreviewed | closed | Forms | dev | invalid | importing newforms in shell throws AttributeError on URL_VALIDATOR_USER_AGENT | In newforms/fields.py line 275 and on a check is done on the existence of URL_VALIDATOR_USER_AGENT with an exception handler on ImportError. But if you import newsforms on the shell (manage.py shell), an dAttributeError is thrown instead of an ImportError. suggested fix: add AttributeError to the exception handler in newforms/fields.py linke 278 | adrian | Fred | 0 | 0 | 0 | 0 | 0 | 0 | |||
3331 | 2007-01-19 11:48:38 | 2007-07-21 05:19:26 | 2022-03-06 03:28:25.894518 | Accepted | closed | Testing framework | dev | wontfix | Client.login() fails when URL contains character requiring urlencoding | I wrote a unittest using the Test Client. It was failing to log in to a page protected by @login_required, using the login() method. My path for the login method is '/video/+sub/'. The login() method was returning False, signifying login not possible, even though the username and password were correct. The reason for the login() failure is that the URL '/video/+sub/' becomes urlencoded as '/video/%2Bsub/' in the redirect to the login form, and the resulting redirect fails. (Why?) Workarounds are: * use a url without a '+' (not optimal in my application) * call login() on a different page first, then get() on my page with '+' in the url * Perhaps the handling of the urlencoded value is failing when it should succeed? That's beyond my current debugging experience. * change client.py as in the attached patch - a one line change to use the non-urlencoded value in ''path'' instead of the value passed through in ''next''. | adrian | Morgan Collett <morgan.collett@gmail.com> | unittest urlencode | 0 | 1 | 0 | 0 | 0 | 0 | ||
3332 | 2007-01-19 14:48:18 | 2007-01-19 18:20:31 | 2022-03-06 03:28:26.057179 | Unreviewed | closed | contrib.admin | dev | duplicate | field.attname should be used rather than using field.column | field.attname should be used rather than using field.column line: 136 on django/contrib/admin/views/main.py {{{ def original_value(self): if self.original: # return self.original.__dict__[self.field.column] return self.original.__dict__[self.field.attname] }}} Otherwise, when "db_column" is used in primary_key field with foreign key, it will be error. | adrian | annonymous | 0 | 0 | 0 | 0 | 0 | 0 | |||
3333 | 2007-01-19 17:26:48 | 2007-03-08 08:50:33 | 2022-03-06 03:28:26.192979 | Ready for checkin | closed | Documentation | dev | fixed | Documentation should use relative links, not hard-coded djangoproject.com links | As suggested in [http://groups-beta.google.com/group/django-developers/browse_thread/thread/2ff4ccdcd9c0ad26/2e47d4d7d4685fa0 this django-developers thread], every document in our {{{docs}}} directory should have its {{{http://www.djangoproject.com/documentation/}}} links converted to relative links. This will make it easier for people to view documentation as HTML locally (see #528) and will solve the problem of old documentation linking to new documentation. I made an example change in [4358]. | jacob | adrian | 0 | 1 | 0 | 0 | 0 | 0 | |||
3334 | 2007-01-19 18:02:37 | 2007-01-27 22:07:08 | 2022-03-06 03:28:26.345863 | Accepted | closed | Forms | dev | fixed | Dynamic Creation of newforms Persists field data | Attached is a patch to the tests for newforms, showing that when passing in fields to dynamically created forms, the fields are persisting across multiple instances of the form. The current test fails as attached, returning field1, field2, field3, and field4 on the second print statement, when it should just return field3 and field4. | adrian | Deryck Hodge <deryck@samba.org> | 0 | 0 | 0 | 0 | 0 | 0 | |||
3335 | 2007-01-19 19:31:53 | 2008-05-17 18:03:39 | 2022-03-06 03:28:26.518660 | Design decision needed | closed | Contrib apps | dev | wontfix | Flatpages with DEBUG=False requires 404.html | While I think it is bad to '''not''' have a 404.html, I think this could be cleaner since it '''does''' work when DEBUG=False. This could lead to a broken site when it is deployed by simply changing the DEBUG setting, which I think is bad. If flatpages and DEBUG=False and 404.html doesn't exist it throws the error: {{{ Traceback (most recent call last): File "/opt/local/lib/python2.4/site-packages/django/core/servers/basehttp.py", line 272, in run self.result = application(self.environ, self.start_response) File "/opt/local/lib/python2.4/site-packages/django/core/servers/basehttp.py", line 614, in __call__ return self.application(environ, start_response) File "/opt/local/lib/python2.4/site-packages/django/core/handlers/wsgi.py", line 189, in __call__ response = self.get_response(request) File "/opt/local/lib/python2.4/site-packages/django/core/handlers/base.py", line 103, in get_response return callback(request, **param_dict) File "/opt/local/lib/python2.4/site-packages/django/views/defaults.py", line 78, in page_not_found t = loader.get_template(template_name) File "/opt/local/lib/python2.4/site-packages/django/template/loader.py", line 79, in get_template source, origin = find_template_source(template_name) File "/opt/local/lib/python2.4/site-packages/django/template/loader.py", line 72, in find_template_source raise TemplateDoesNotExist, name TemplateDoesNotExist: 404.html }}} When DEBUG=False, get_response in core/handlers/base.py triggers the callback to the handler404 which is 'django.views.defaults.page_not_found' which eventually loads the template 404.html. If it doesn't exist, you get the error above. When DEBUG=True, get_response loads the django.views.debug.technical_404_response. I see two options for a fix (and one isn't really a "fix")... 1. Change documentation to say that flatpages require that you have a 404.html template. 2. Fix this so it works the same in both DEBUG states. If !#2 is the best … | adrian | Rob Hudson <treborhudson@gmail.com> | 0 | 0 | 0 | 0 | 0 | 0 | |||
3336 | 2007-01-19 21:31:29 | 2007-01-23 16:28:31 | 2022-03-06 03:28:26.680581 | Ready for checkin | closed | *.djangoproject.com | fixed | Link to Ticket System on "Community" page is broken | The link to the "Ticket system" on the [http://www.djangoproject.com/community/ community] page (under "Get Involved" in the right sidebar) links to http://code.djangoproject.com/newticket which now requires TICKET_CREATE privileges under the new ticket triage system. The result is an error message. The link should point to http://code.djangoproject.com/simpleticket instead. | jacob | ned.phillips@gmail.com | 0 | 1 | 0 | 0 | 0 | 0 | ||||
3337 | 2007-01-20 13:36:43 | 2007-01-20 17:26:00 | 2022-03-06 03:28:26.851143 | Accepted | closed | Forms | dev | fixed | [patch] newforms-fields better calls super(CLASS,self) instead class-method Field | I looked into django.newforms.fields and saw that in the __init__() and the clean() method always calls to the Field.__init__() and Field.clean() method are made. In an more object oriented way those calls should be better super(CLASSNAME, self).__init__() and super(CLASSNAME, self).clean() | adrian | Dirk Datzert <dummy@habmalnefrage.de> | super | 0 | 1 | 0 | 0 | 0 | 0 | ||
3338 | 2007-01-20 18:04:12 | 2009-05-27 18:03:14 | 2022-03-06 03:28:26.988037 | Design decision needed | closed | Uncategorized | dev | fixed | build_rpm problems | I build Django rpms on different python versions and different rpm versions. I always struggled over the INSTALLED_FILES where directories not prefixed with %dir any longer. This stopps some rpm build process to stop packaging since files under those directories resulted in an 'File listed twice' error. A simple rpm_install-script will fix this. | jacob | Dirk Datzert <dummy@habmalnefrage.de> | build_rpm | 0 | 0 | 0 | 0 | 0 | 0 | ||
3339 | 2007-01-20 18:32:33 | 2007-01-20 23:01:00 | 2022-03-06 03:28:27.161184 | Unreviewed | closed | *.djangoproject.com | dev | duplicate | RSS on code.djangoproject.com/timeline doesn't work after upgrade | *Subj*. It fails with following error message: {{{ Internal Error Ticket changes, Ticket details event provider (TicketModule) failed: AttributeError: 'NoneType' object has no attribute 'lower' }}} | jacob | eugene@lazutkin.com | 0 | 0 | 0 | 0 | 0 | 0 | |||
3340 | 2007-01-20 21:06:48 | 2007-01-20 21:12:20 | 2022-03-06 03:28:27.337399 | Unreviewed | closed | contrib.admin | new-admin | invalid | Admin behavior when DEBUG is True (newforms version) | While the new-admin interface is being built, I'd like to lobby for more shortcuts (e.g. less safeguards) when DEBUG is True. Usually this is the case when you're in development mode and using Admin. Specifically, in this mode it would be nice to delete single/multiple items from a list without having to confirm each deletion. | adrian | Jeff Bauer <jbauer@rubic.com> | 0 | 0 | 0 | 0 | 0 | 0 | |||
3341 | 2007-01-21 03:56:03 | 2007-08-18 14:46:13 | 2022-03-06 03:28:27.489675 | Accepted | closed | Documentation | dev | duplicate | Man pages for executable scripts in django/bin/ | I've been talking with people who maintain packages of Django for Linux distributions, and one concern that's come up is that they want to install the scripts from `django/bin/` into systemwide locations like /usr/bin/, but doing so usually requires a `man` page; it'd make their lives easier if we could provide properly-formatted `man` pages documenting those scripts. | jacob | ubernostrum | man documentation | 0 | 0 | 0 | 0 | 0 | 0 | ||
3342 | 2007-01-21 17:47:58 | 2007-01-23 10:23:13 | 2022-03-06 03:28:27.640444 | Unreviewed | closed | Forms | dev | duplicate | ForeignKey relation doesn't work with newforms form_for_model() save | When having a model with ForeignKey(), clean_data returns unicoded integer of related-field, but django expects an instance of that model. Because of that model_save in newforms/models.py line 18, obj = self._model(**self.clean_data) fails. The solution is probably to resolve ForeignKey somewhere before but I'm not sure how to do this properly. | adrian | Jure Cuhalev <gandalf@owca.info> | ForeignKey newforms | 0 | 0 | 0 | 0 | 0 | 0 | ||
3344 | 2007-01-21 21:35:45 | 2011-10-09 12:44:57 | 2022-03-06 03:28:27.947800 | Accepted | closed | Forms | dev | fixed | newforms UnicodeEncodeError in EmailField on non-successful validation | newforms EmailField causes UnicodeEncodeError exception in case when value isn't correct. {{{ Exception Type: UnicodeEncodeError Exception Value: 'ascii' codec can't encode character u'\u017a' in position 33: ordinal not in range(128) Exception Location: /System/Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages/django/newforms/forms.py in _html_output, line 103 }}} I spent some time for debugging and I found that what probably causes the error is: {{{ RegexField.__init__(self, email_re, max_length, min_length, gettext(u'Enter a valid e-mail address.'), required, widget, label, initial) }}} newforms/fields.py, line 267 (rev. 4386) When for debug purposes I changed gettext(u'Enter a valid e-mail address.') to anything else (ex. gettext(u'aaa')), the problem didn't occur and the 'aaa' validation error message was displayed like it should. This is probably a problem with translation file or so, but I'm just a Python/django/gettext newbie and I'm just starting my adventure with all of them, so I'm unable to debug it more. | adrian | bartekr | UnicodeEncodeError EmailField gettext Polish Norwegian unicode unicode-branch | 0 | 1 | 0 | 0 | 0 | 0 | ||
3345 | 2007-01-22 01:37:10 | 2007-03-15 04:13:32 | 2022-03-06 03:28:28.100609 | Design decision needed | closed | contrib.admin | invalid | Admin Search Fields From Related Models | I'm trying to in the Admin Change List Form have the ability to search records via information from a related model. Example When in case_files I would like to search by Company Name, this information is stored in a separate object. Can this be possible? Below is a sample of the models.py Regards {{{ class company_record(models.Model): midas_number = models.CharField(maxlength=10, verbose_name='Midas Number') company_name = models.CharField(maxlength=200, verbose_name='Company Name') midas_parent = models.CharField(maxlength=10, verbose_name='Midas Parent Member Number') parent_name = models.CharField(maxlength=200, verbose_name='Parent Company Name') company_status = models.CharField(maxlength=100, verbose_name='Member Current Status') company_cat = models.CharField(maxlength=10, verbose_name='Company Category') def __str__(self): return self.midas_number + " - " + self.company_name class Admin: pass list_display = ('midas_number', 'company_name', 'midas_parent', 'parent_name', 'company_status', 'company_cat') list_display_links = ('midas_number', 'company_name') list_filter = ('company_cat', 'company_status') search_fields = ['company_name'] class Meta: verbose_name = "Company Record" class case_file(models.Model): midas_number_id = models.AutoField(primary_key=True) midas_number = models.ForeignKey(company_record, edit_inline=models.STACKED, num_in_admin=1, verbose_name="Company Name") fileid = models.CharField(maxlength=10, core=True, primary_key=True, verbose_name='File ID') file_state = models.CharField(maxlength=3, core=True, verbose_name='State') file_status = models.CharField(maxlength=10, core=True, verbose_name='File Current Status') file_open_date = models.DateField('File Open Date', core=True) file_close_date = models.DateField('File Close Date', core=True) owning_officer = models.CharField(maxlength=200, core=True, verbose_name='"Owning" Officer')… | adrian | rfreitag@aigroup.asn.au | 0 | 0 | 0 | 0 | 0 | 0 | ||||
3346 | 2007-01-22 04:22:26 | 2007-01-23 02:01:34 | 2022-03-06 03:28:28.250945 | Ready for checkin | closed | Documentation | dev | fixed | Document that Admin search_fields can be from related models | See [http://code.djangoproject.com/ticket/3345#comment:5 this comment] in #3345 {{{ #!python search_field = ['midas_number__company_name'] }}} This feature isn't documented as far as I can see. | jacob | SmileyChris | 0 | 1 | 0 | 0 | 0 | 0 | |||
3347 | 2007-01-22 16:52:25 | 2007-01-22 17:08:21 | 2022-03-06 03:28:28.402062 | Unreviewed | closed | Uncategorized | dev | fixed | wiki page DjangoPoweredSites needs reverted | Akismet won't allow any normal revert of the vandalism to DjangoPoweredSites, as it responds "too many external links" and dies http://code.djangoproject.com/wiki/DjangoPoweredSites needs reverted to http://code.djangoproject.com/wiki/DjangoPoweredSites?version=54 | jacob | Collin Grady <cgrady@the-magi.us> | 0 | 0 | 0 | 0 | 0 | 0 | |||
3348 | 2007-01-22 19:57:59 | 2007-01-22 20:03:46 | 2022-03-06 03:28:28.565384 | Ready for checkin | closed | Uncategorized | dev | fixed | Reopen #1961 | Still seems to be an issue. Reopen please. | jacob | SmileyChris | 0 | 0 | 0 | 0 | 0 | 0 | |||
3349 | 2007-01-22 20:08:02 | 2011-09-28 16:12:27 | 2022-03-06 03:28:28.713487 | Accepted | closed | Template system | dev | fixed | If an ImportError occurs within some loaders a rather confusing exception is raised. | The problem is, when Django attempts to load a custom tag library (in source:django/trunk/django/template/__init__.py, in the {{{get_library()}}} function), it ''traps'' all {{{ImportError}}}'s, regardless of where they are ''thrown'' from: {{{ try: mod = __import__(module_name, {}, {}, ['']) except ImportError, e: raise InvalidTemplateLibrary, "Could not load template library from %s, %s" % (module_name, e) }}} An example... If I have a "view" like so: {{{ def my_view(request): return render_to_response('my.tpl', {}) }}} ...And a corresponding template: {{{ {% load tag_lib %} <h1>my template</h1> ... }}} ...Now, here's the tag library {{{tag_lib}}}: {{{ import notthere ... }}} ...Invoking our view, now, will yield a not-very-easy-to-understand (unless you already know the problem) error message: {{{ TemplateSyntaxError at /my_view 'tag_lib' is not a valid tag library: Could not load template library from django.templatetags.tag_lib, No module named notthere Request Method: GET Request URL: http://localhost:8000/my_view Exception Type: TemplateSyntaxError Exception Value: 'tag_lib' is not a valid tag library: Could not load template library from django.templatetags.tag_lib, No module named notthere Exception Location: /usr/lib/python2.4/site-packages/Django-0.95-py2.4.egg/django/template/defaulttags.py in load, line 692 }}} You may need to look closely to notice that the root of the problem was that our tag library tried to load a module {{{notthere}}}; the problem ''was not'' that we tried to load a non-existant tag library. This is essentially the same message that you will get when trying to load a tag library that is completely non-existant - i.e., if our template were: {{{ {% load not_tag_lib %} <h1>my template</h1> ... }}} We would now see the error message: {{{ TemplateSyntaxError at /my_view 'not_tag_lib' is not a valid tag library: Could not load template library from django.templatetags.not_tag_lib, No module named n… | nobody | Chris Wagner <cw264701@ohiou.edu> | 0 | 1 | 0 | 1 | 0 | 0 | |||
3350 | 2007-01-22 23:25:17 | 2007-09-15 18:11:44 | 2022-03-06 03:28:28.865455 | Ready for checkin | closed | Core (Other) | dev | fixed | Django should call time.tzset after setting TZ environment variable. | After reading #2315 I spoted this on python's documentation: {{{ Note: Although in many cases, changing the TZ environment variable may affect the output of functions like localtime without calling tzset, this behavior should not be relied on. The TZ environment variable should contain no whitespace. }}} So, Django should call tzset after setting the TZ environment variable! Origin: [http://docs.python.org/lib/module-time.html] | anonymous | Marc Fargas <telenieko@telenieko.com> | 0 | 1 | 0 | 0 | 0 | 0 | |||
3351 | 2007-01-23 01:39:49 | 2007-02-12 00:22:22 | 2022-03-06 03:28:29.025209 | Ready for checkin | closed | Template system | dev | fixed | Add block name to endblock (feature request) | For some large pages, I find it useful to add comments showing the names of the blocks that an "endblock" is for: {{{ {% block outer %} .. many lines here ... {% block inner %} .. etcetera .. {% block questions %} .. a whole lot of stuff here .. {% endblock %} {# questions #} ... etc ... {% endblock %} {# inner #} ... blah ... {% endblock %} {# outer #} }}} The {{{ {# endblock comments #} }}} help me keep my sanity. What I'd like to do is write: {{{ {% endblock questions %} ... etc ... {% endblock inner %} ... blah ... {% endblock outer %} }}} and have django make sure that the endblocks match with the named block. Helps with the "internal documentation" and helps me see the structure and catch cut/paste errors. The endblock naming would be purely optional, of course! | adrian | yary h <spm-django@yary.ack.org> | 0 | 1 | 0 | 0 | 0 | 0 | |||
3353 | 2007-01-23 11:21:25 | 2007-01-24 00:43:57 | 2022-03-06 03:28:29.341715 | Unreviewed | closed | Translations | dev | duplicate | NullBooleanField is not translated | When using NullBooleanField, the values (Unknown, Yes, No) are not translated in the admin-interface. | hugo | patrick@vonautomatisch.at | 0 | 0 | 0 | 0 | 0 | 0 | |||
3354 | 2007-01-23 12:14:52 | 2007-02-26 05:15:52 | 2022-03-06 03:28:29.492535 | Ready for checkin | closed | Documentation | dev | fixed | Tutorial pages on website should direct users to django-users with problems | I've just cleaned up #2592 and cross-referenced it with comments on the tutorials. Most of the comments on there are simple misconfigurations, or errors where the user hasn't followed the tutorial closely enough, and these should be directed to django-users/#django where they can be helped quickly, or asked to file a ticket if there's a bug. This would also have two follow on effects: First, it would leave a better impression on people than having 15-20 outdated and contradictory comments complaining that Django doesn't work. Second, it would increase visibility of common issues that people have with the tutorials so they can be fixed (because these are the first encounter with Django, we need to make them as smooth as possible). For example: {{{ If you have any problems with this tutorial, please post a message to django-users (http://groups.google.com/group/django-users) or drop by #django on IRC (irc://irc.freenode.net/django) and we'll try to help. If you think you've found a bug, please file open a ticket at http://code.djangoproject.com/simpleticket }}} | jacob | Simon G. <dev@simon.net.nz> | docs | 0 | 1 | 0 | 0 | 0 | 0 | ||
3355 | 2007-01-23 16:19:20 | 2007-07-16 17:26:42 | 2022-03-06 03:28:29.661121 | Accepted | closed | Database layer (models, ORM) | dev | invalid | filter() with related table stomps on extra(tables) | I started a discussion here with no responses so I thought I'd file a bug so this doesn't get lost... http://groups.google.com/group/django-developers/browse_thread/thread/a88046d26172908d/?hl=en# Summary: If you're using extra() to specify extra tables to add to your query AND you're using filter() with a related table, the extra() table gets lost. Example (also found in the above message): This correctly adds "page_item" to the FROM clause by using extra(). Notice I'm not yet referencing a related table in the filter() clause since template_id is contained in the Page object. {{{ In [29]: Page.objects.extra( tables=['page_item'], where=['page_item.page_id=page_page.id']) .filter(template__id='1')._get_sql_clause() Out[29]: (['`page_page`.`id`', '`page_page`.`number`', '`page_page`.`title`', '`page_page`.`template_id`', '`page_page`.`description`'], ' FROM `page_page` , `page_item` WHERE page_item.page_id=page_page.id AND (`page_page`.`template_id` = %s)', ['1']) }}} But adding the related table lookup for the 'name' column in the filter() clause breaks the extra() tables and "page_item" disappears... {{{ In [30]: Page.objects.extra( tables=['page_item'], where=['page_item.page_id=page_page.id']) .filter(template__name='Default Template') ._get_sql_clause() Out[30]: (['`page_page`.`id`', '`page_page`.`number`', '`page_page`.`title`', '`page_page`.`template_id`', '`page_page`.`description`'], ' FROM `page_page` INNER JOIN `page_template` AS `page_page__template` ON `page_page`.`template_id` = `page_page__template`.`id` , `page_item` WHERE page_item.page_id=page_page.id AND (`page_page__template`.`name` = %s)', ['Default Template']) }}} | adrian | Rob Hudson <treborhudson@gmail.com> | 0 | 0 | 0 | 0 | 0 | 0 | |||
3356 | 2007-01-23 19:59:56 | 2007-12-01 14:15:48 | 2022-03-06 03:28:29.827855 | Design decision needed | closed | Generic views | dev | wontfix | Ability to turn off new message in the Message framework when using create/edit/delete generic view | It would be great if Django provided a parameter to disable creating a new message when using create/update/delete generic view. It would be enabled by default. Something like: def delete_object(request, model, post_delete_redirect ...., create_info_message=True) ... if request.user.is_authenticated() and create_info_message: request.user.message_set.create(message=gettext("The %(verbose_name)s was deleted.") % {"verbose_name": model._meta.verbose_name}) return HttpResponseRedirect(post_delete_redirect) | nobody | anonymous | generic views, message | 0 | 0 | 0 | 0 | 0 | 0 | ||
3358 | 2007-01-24 08:29:19 | 2007-12-09 07:44:44 | 2022-03-06 03:28:30.097335 | Accepted | closed | Database layer (models, ORM) | duplicate | select_related() should work with ValuesQuerySets | (Some of you may be reading this for the second or third time since I brought it up both on the django-developers list and IRC) There appears to be no way to make a query like this through the django models without using SQL or hitting the database twice: {{{ SELECT trackback.title, blog.name, blog.url FROM trackback INNER JOIN blog ON trackback.blog_id = blog.id }}} As far as I know, selecting with table fields is preferred above using a SELECT * any time possible. I understand this would break the model object to table row mapping of the !QuerySet (objects woulnd't be complete if some fields were missing), perhaps a new kind of !QuerySet or !ValueQuerySet is needed? If this is something that would be a welcome addition to the codebase, I could probably help out. | nobody | dbr <daniel.brandt@gmail.com> | 0 | 0 | 0 | 0 | 0 | 0 | ||||
3359 | 2007-01-24 13:48:06 | 2007-06-07 16:45:38 | 2022-03-06 03:28:30.240678 | Design decision needed | closed | *.djangoproject.com | wontfix | Add "Current server time" to the bottom of code.djangoproject.com | It's completelly wishlist so feel absolutely free to close as wontfix ;) For those living in other timezones than djangoproject.com it would be a bit usefull to have the server time printed at the bottom of the page in code.djangoproject.com, so we don't need to calculate it ourselves when looking at the "timeline" and tickets. Again, it's just wish*whish*whishlist | jacob | Marc Fargas <telenieko@telenieko.com> | 0 | 0 | 0 | 0 | 0 | 0 | ||||
3360 | 2007-01-24 15:29:25 | 2007-11-29 22:14:23 | 2022-03-06 03:28:30.411165 | Ready for checkin | closed | *.djangoproject.com | dev | fixed | One Django badge on community page is cut off. | Hello, '''80x15''' A Django site (grey) badge on the community page is cut off on the left side, few pixels are missing... | jezdez | hi@brand84.com | badge, community, sprintsept14 | 0 | 1 | 0 | 0 | 0 | 0 | ||
3362 | 2007-01-24 16:34:27 | 2007-10-27 06:08:04 | 2022-03-06 03:28:30.695950 | Design decision needed | closed | Core (Other) | dev | wontfix | Add HttpResponseNoContent response type | Add a {{{django.http.HttpResponseNoContent}}} class which encapsulates the 204 response from the HTTP spec. This should be used when input is sent to the server, but no response is received. An Ajax callback is a good example of where this is relevant. | nobody | afternoon@uk2.net | http status response | 0 | 1 | 0 | 1 | 0 | 0 | ||
3363 | 2007-01-24 20:52:40 | 2007-01-25 00:41:43 | 2022-03-06 03:28:30.863612 | Unreviewed | closed | Uncategorized | dev | fixed | Please reopen a few tickets | Hi Jacob, these tickets should be reopened, I only closed them temporarily to wait for feedback. #3075, #3279, #3309, #3320 thanks, Michael | jacob | mir@noris.de | 0 | 0 | 0 | 0 | 0 | 0 | |||
3364 | 2007-01-25 00:13:10 | 2007-08-14 16:27:06 | 2022-03-06 03:28:31.027409 | Design decision needed | closed | Documentation | dev | fixed | install.txt states psycopg2 is in beta and recommends psycopg1 | install.txt: {{{ * If you're using PostgreSQL, you'll need the psycopg_ package (version 1.1 -- not version 1.0 or version 2, which is still in beta). If you're on Windows, check out the unofficial `compiled Windows version`_. }}} Note that psycopg1 is now "obsolete" ([http://www.initd.org/tracker/psycopg]) and psycopg2 is no longer 'beta' (as far as I saw on the site). At least the "which is still in beta" should be removed. And maybe it's time to recommend psycopg2 instead of 1 if there are no big issues with that. I'll upload two patches now, one for each option :) | jacob | Marc Fargas <telenieko@telenieko.com> | MESSAGE | 0 | 1 | 0 | 0 | 0 | 0 | ||
3365 | 2007-01-25 05:02:52 | 2007-01-25 05:14:03 | 2022-03-06 03:28:31.170962 | Unreviewed | closed | Uncategorized | dev | invalid | Error in permission docs | The permission docs page raises a 404 error | jacob | anonymous | 0 | 0 | 0 | 0 | 0 | 0 | |||
3366 | 2007-01-25 05:20:28 | 2007-06-14 01:15:16 | 2022-03-06 03:28:31.331601 | Accepted | closed | Core (Mail) | dev | fixed | Replace datatuple with object in send_mass_mail parameters | With the features wanting to be added for sending mail (attachements #1541, bcc's #3307, etc.), the datatuple is starting to get out of hand. I propose some sort of `EmailMessage` class for storing all these different data pieces as attributes. This way, the attachment, bcc, etc. parameters can be optional keyword arguments for the `EmailMessage` constructor. | adrian | Gary Wilson <gary.wilson@gmail.com> | 0 | 1 | 0 | 1 | 1 | 0 | |||
3367 | 2007-01-25 15:24:48 | 2007-03-13 01:03:58 | 2022-03-06 03:28:31.506119 | Unreviewed | closed | Database layer (models, ORM) | dev | worksforme | Overloading save_<fieldname>_file for Filefields and ImageFields broken | The save_<fieldname>_file is not called when an object of a class containing a FileField or an ImageField is saved. | adrian | Jam | filefield imagefield save | 0 | 0 | 0 | 0 | 0 | 0 | ||
3368 | 2007-01-25 23:37:01 | 2007-02-20 00:38:32 | 2022-03-06 03:28:31.675188 | Design decision needed | closed | Forms | dev | fixed | Add USStateField and PhoneNumberfield to django.newforms.fields | The summary says it all. | adrian | jkocherhans | 0 | 1 | 0 | 0 | 0 | 0 | |||
3369 | 2007-01-26 06:31:13 | 2007-09-16 16:13:51 | 2022-03-06 03:28:31.822843 | Design decision needed | closed | Database layer (models, ORM) | dev | duplicate | reverse caching of foreign keys | It would be nice if Django were to cache the reverse value of foreign keys when they're looked up. That might not be entirely clear, so let me give an example: {{{ class Company(Model): name = models.CharField(maxlength=100) class Employee(Model): company = models.ForeignKey(Company) c = Company.objects.all()[0] e = c.employee_set.all()[0] # e now really must have a company of c... there's no reason it wouldn't be c e.company # accesses the database }}} I tried implementing this, but got lost in some of the model code. My approach was to use an auto_cache 'filter' for QuerySets. The above code would look like this: {{{ c = Company.objects.all()[0] e = c.employee_set.auto_cache(company=c).all()[0] e.company # no database accesses }}} Which eventually I would have made automatic for all sets. I got far enough to realize that each foreign key will potentially query the database even after an attribute has explicitly been assigned. For example: {{{ c = Company.objects.all()[0] e = c.employee_set.all()[0] new_company = Company() e.company = new_company e.company == new_company # database accesses for e.company and not equal to the new object }}} I'd love to see a feature like this, so if it's not something that you all want to implement, point me in the right direction. | nobody | wbyoung@mcdonogh.org | 0 | 1 | 0 | 0 | 0 | 0 | |||
3370 | 2007-01-26 06:35:57 | 2011-10-09 12:44:57 | 2022-03-06 03:28:31.975157 | Accepted | closed | Forms | dev | fixed | [patch] newforms: form.save() raises UnicodeEncodeError when form contains any non latin characters | Hello everyone I've found the following bug with newforms: when one uses form_for_model/form_for_instance methods and then does save() and form contains any non-latin (national) characters, UnicodeEncodeError is raised. Example (console encoding = ru_RU.UTF-8) {{{ >>> from myproject.models import Payment >>> from django import newforms as forms }}} Let's try form_for_model: {{{ >>> PaymentForm1 = forms.models.form_for_model(Payment) >>> form1 = PaymentForm1({'description': 'превед now', 'event_date': '2007-01-26', 'user': '1', 'pay_type': 'cash', 'amount':'50.3'}) >>> form1.is_valid() True >>> form1.save() Traceback (most recent call last): File "<console>", line 1, in ? File "/usr/lib/python2.4/site-packages/django/newforms/models.py", line 25, in model_save obj.save() File "/usr/lib/python2.4/site-packages/netangels/models/payment.py", line 26, in save super(Payment, self).save() File "/usr/lib/python2.4/site-packages/django/db/models/base.py", line 204, in save ','.join(placeholders)), db_values) File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py", line 148, in execute query = query % db.literal(args) File "/usr/lib/python2.4/site-packages/MySQLdb/connections.py", line 232, in literal return self.escape(o, self.encoders) File "/usr/lib/python2.4/site-packages/MySQLdb/connections.py", line 179, in unicode_literal return db.literal(u.encode(unicode_literal.charset)) UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-5: ordinal not in range(256) }}} now let's try form_for_instance {{{ >>> payment = Payment.objects.get(pk=2) >>> PaymentForm2 = forms.models.form_for_instance(payment) >>> form2 = PaymentForm2({'description': 'превед now', 'event_date': '2007-01-26', 'user': '1', 'pay_type': 'cash', 'amount':'50.3'}) >>> form2.is_valid() True >>> form2.save() Traceback (most recent call last): File "<console>", line 1, in ? File "/usr/lib/python2.4/site-packages/django/newforms/models.py", l… | adrian | anton@khalikov.ru | newforms utf8 unicode-branch | 0 | 1 | 1 | 1 | 0 | 0 | ||
3372 | 2007-01-26 18:55:44 | 2007-08-25 05:11:46 | 2022-03-06 03:28:32.294582 | Design decision needed | closed | Contrib apps | dev | fixed | django.contrib.auth.views.password_change is tied to the URL /accounts/login/ | There's a problem when trying to set up your login/auth URLs different than Django's defaults. The one I've been unable to work around without copying/pasting all of the function is django.contrib.auth.views.password_change. Here's the gist of the problem... 1. password_change is decorated with Django's default login_required decorator. 2. The default login_required decorator uses the (un-overridable) LOGIN_URL variable. 3. The LOGIN_URL variable is set to "/accounts/login/". I see 2 fixes... '''1) Move LOGIN_URL to global_settings.py''' This would allow the default Django login_required decorator to be easily overridden, making things much easier across the board. (Anything decorated with login_required is fixed, the shortcut methods like "redirect_to_login" and "logout_then_login" are fixed. And there's already variables for the contrib.comments system in global_settings.py so there's already precedent for having contrib apps with stuff in global_settings.py. :) '''2) Provide an un-decorated password_change method''' Having a password_change method that isn't decorated allows me to decorate it with my own login_required decorator, which redirects to my own login URL if not authenticated. Either of these should be possible without breaking backwards compatibility. I have a patch for either. Should I submit both patches? Or should I wait for a design decision and submit the patch for what's decided (if either of the above)? | adrian | Rob Hudson <treborhudson@gmail.com> | login | 0 | 0 | 0 | 0 | 0 | 0 | ||
3374 | 2007-01-26 21:36:49 | 2007-02-17 16:36:44 | 2022-03-06 03:28:32.644697 | Unreviewed | closed | contrib.admin | dev | worksforme | Errors on "Save as new" preclude saving a new record | If you save a record with "Save as new" and there are errors, you are left in an add_stage so that "Save as new" is no longer available (it's replaced with "Save and add another".) So now, the user may correct the error, but each of their submit options will actually modify the record rather than create a new one as originally intended. I could not find a context variable that django.contrib.admin.templatetags.admin_modify.submit_row could use to determine that show_save_as_new should be True. | adrian | David S. <davidschein@alumni.tufts.edu> | 0 | 0 | 0 | 0 | 0 | 0 | |||
3375 | 2007-01-26 23:31:53 | 2007-02-15 00:15:13 | 2022-03-06 03:28:32.830204 | Ready for checkin | closed | Translations | dev | fixed | [patch] swedish translation update | Works for me :) | hugo | mikko@sorl.net | i18n swedish | 0 | 1 | 0 | 0 | 0 | 0 | ||
3376 | 2007-01-26 23:45:26 | 2007-02-15 05:46:31 | 2022-03-06 03:28:33.011335 | Design decision needed | closed | Forms | dev | wontfix | newforms.Form.clean_data is not read-only | Is it possible to make newforms.Form.clean_data immutable? I'm kind of surprised it isn't, but I don't know the meaning or purpose of all things. {{{ $ python manage.py shell Python 2.4.4c1 (#2, Oct 11 2006, 21:51:02) [GCC 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)] on linux2 Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> from django import newforms >>> class form(newforms.Form): ... a = newforms.IntegerField() ... b = newforms.CharField() ... >>> d = {'a': 1, 'b': 'field b'} >>> f = form(d) >>> f.is_valid() True >>> f.clean_data {'a': 1, 'b': u'field b'} >>> f.clean_data['a'] = 2 >>> f.clean_data {'a': 2, 'b': u'field b'} }}} | adrian | jfindlay@gmail.com | 0 | 0 | 0 | 0 | 0 | 0 | |||
3377 | 2007-01-27 03:47:50 | 2007-02-13 06:06:09 | 2022-03-06 03:28:33.203269 | Ready for checkin | closed | Database layer (models, ORM) | dev | fixed | [patch] Infinite loop in LazyDate | {{{__getattr__}}} and {{{__get_value__}}} methods of LazyDate creates infinite recursion if object hasn't got a delta attribute. Normally it shouldn't happen, but in some case, for example if we try to unpickle LazyDate object, it starts looping. | adrian | Brut[all] <brut.alll@gmail.com> | LazyDate pickle | 0 | 1 | 0 | 0 | 0 | 0 | ||
3379 | 2007-01-27 22:38:02 | 2007-04-25 09:44:07 | 2022-03-06 03:28:33.555539 | Ready for checkin | closed | Core (Other) | dev | fixed | last_login not updated | During normal login the last_login field of the user is not updated. Shouldn't the login function do this (as attached). I could only find some code in staff_member_required (which could be removed if the login function does the work). | adrian | arvin | last_login, login | 0 | 1 | 0 | 0 | 0 | 0 | ||
3380 | 2007-01-28 18:13:12 | 2007-02-09 08:09:20 | 2022-03-06 03:28:33.719305 | Design decision needed | closed | contrib.admin | dev | wontfix | Add restore/backup action to the admin interface | First I'm sorry if there's any error in my submission. I am not used to submit a patch. In fact, it may well be the first time... On the other hand, I'm French so I could have misunderstand points in your guidelines. My patch add a support for backup in the admin interface. It backups the current objects in the database, for a given table. It uses the cPickle module. It is useful for development server, when you want to add items to your table, and then want to add these writings to your real server, without having to use tools like phpmyadmin, ... I would be happy if it helps somebody. | adrian | Charlax <ca.dein@free.fr> | admin restore backup db management | 0 | 1 | 1 | 1 | 0 | 0 | ||
3382 | 2007-01-28 23:17:07 | 2007-12-01 14:20:55 | 2022-03-06 03:28:34.029987 | Design decision needed | closed | Database layer (models, ORM) | dev | wontfix | FloatField values get rounded on save() | Django uses the %s format code to insert FloatField values into SQL command strings to send to the database. However, the %s format code rounds floating point numbers to 12 significant digits, which may cause unexpected rounding when the FloatField is configured to store more than 12 digits. I would have expected Django to use the '%.xf' format code, where x = decimal_places specified for the FloatField in the model definition, which would prevent rounding when saving to the database. | nobody | rfugger at gmail dot com | float rounding | 0 | 0 | 0 | 0 | 0 | 0 | ||
3383 | 2007-01-28 23:47:33 | 2007-01-28 23:57:22 | 2022-03-06 03:28:34.185976 | Unreviewed | closed | Template system | dev | duplicate | Images Won't Include | When I try to include an image like I would in any other website, the image does not display. How do I configure the urls to treat an image like an image so they can be displayed? | adrian | anonymous | image template problem | 0 | 0 | 0 | 0 | 0 | 0 | ||
3384 | 2007-01-28 23:47:46 | 2007-01-28 23:57:56 | 2022-03-06 03:28:34.322286 | Unreviewed | closed | Template system | dev | invalid | Images Won't Include | When I try to include an image like I would in any other website, the image does not display. How do I configure the urls to treat an image like an image so they can be displayed? | adrian | nate.radebaugh@gmail.com | image template problem | 0 | 0 | 0 | 0 | 0 | 0 | ||
3385 | 2007-01-29 00:18:36 | 2007-01-29 00:25:36 | 2022-03-06 03:28:34.469421 | Unreviewed | closed | Uncategorized | dev | fixed | "Template inheritance" from "design philosophies" | Link goes to 404. Url = "http://www.djangoproject.com/documentation/design_philosophies/templates/#template-inheritance" | jacob | miker@sundialservices.com | 0 | 0 | 0 | 0 | 0 | 0 | |||
3386 | 2007-01-29 02:48:56 | 2007-01-29 05:37:21 | 2022-03-06 03:28:34.639380 | Unreviewed | closed | Core (Other) | dev | duplicate | add PYTHONSTARTUP capability to manage.py shell | Responding to this thread on Django Users: http://tinyurl.com/2rferr This patch adds PYTHONSTARTUP capability to manage.py shell when: 1. PYTHONSTARTUP is defined in the environment 2. .pystartup is present in the user's home directory Use of the {{{--plain}}} option disables execution of PYTHONSTARTUP. | adrian | Jeff Bauer <jbauer@rubic.com> | PYTHONSTARTUP | 0 | 1 | 0 | 0 | 0 | 0 | ||
3387 | 2007-01-29 09:49:34 | 2007-01-30 02:35:13 | 2022-03-06 03:28:34.790998 | Unreviewed | closed | Core (Other) | dev | worksforme | UnicodeEncodeError on contains and icontains | I got UnicodeEncodeError when I try to search with "__icontains" and unicode string. {{{ In [26]: Product.objects.filter(name=unicode('Fantasia - ķiršu','utf-8')) Out[26]: [<Product: Fantasia - ķiršu>] In [27]: Product.objects.filter(name__icontains=unicode('Fantasia - ķiršu','utf-8')) --------------------------------------------------------------------------- exceptions.UnicodeEncodeError Traceback (most recent call last) ............ /home/***/django/db/models/fields/__init__.py in <lambda>(x) 23 24 # prepares a value for use in a LIKE query ---> 25 prep_for_like_query = lambda x: str(x).replace("\\", "\\\\").replace("%", "\%").replace("_", "\_") 26 27 # returns the <ul> class for a given radio_admin value UnicodeEncodeError: 'ascii' codec can't encode character u'\u0137' in position 11: ordinal not in range(128) }}} | adrian | Gacha | UnicodeEncodeError | 0 | 1 | 1 | 1 | 0 | 0 | ||
3388 | 2007-01-29 09:51:06 | 2007-01-29 18:50:26 | 2022-03-06 03:28:34.958626 | Accepted | closed | Forms | dev | invalid | [patch] newforms: form.save() fails with DoesNotExist exception when form contains ForeignKey field | Hello everyone SVN version of newforms contains a bug with merging Jeff Hilyard's patch: when one does form.save() with a form contained ForeignKey field, it fails with DoesNotExists exception. Patch to fix it is attached. | adrian | anton@khalikov.ru | 0 | 1 | 0 | 1 | 0 | 0 | |||
3389 | 2007-01-29 12:31:11 | 2007-01-29 16:09:47 | 2022-03-06 03:28:35.114787 | Design decision needed | closed | Database layer (models, ORM) | dev | fixed | Allow m2m sets to be assigned by primary key value | At present, m2m relations must be specified using a list of object instances: {{{ john = Author(...) john.save() fred = Author(...) fred.save() Article.authors = [john, fred] }}} This proposal (and patch) would allow m2m relations be specified using primary key values in place of the object instance: {{{ Article.authors = [john.id, fred.id] # or, if you know the pk values to begin with... Article.authors = [4,7] }}} The reason for this is twofold: 1. For parity with the ability to set m2o related objects by primary key (using Article.author_id = 3) 2. To simplify deserialization, removing the need for a query to find related objects while deserializing m2m sets. | adrian | russellm | m2m primary key | 0 | 1 | 0 | 0 | 1 | 0 | ||
3390 | 2007-01-29 13:02:55 | 2007-02-26 17:33:28 | 2022-03-06 03:28:35.273970 | Design decision needed | closed | Core (Serialization) | dev | fixed | Deserializer cannot handle circular and forward references to object instances | The current deserializers are not able to represent circular references between objects, or forward references to objects. This is because the reconstruction of m2o and m2m relations calls on the database API to resolve the ID's mentioned in the serialization string into object instances which can be saved. Therefore, if an object has not been saved, it cannot be successfully referenced in a serialization file. This is a serious impediment to the use of serialization files for test fixtures and database migration (see ticket #2333). To overcome this, I submit this modification to the deserializer that bypasses the database lookup step. The revised deserializer saves the primary key values defined in the serialization file directly into the object. This is the equivalent of doing: {{{ Article.author_id = 3 }}} instead of: {{{ Article.author = Author.objects.get(pk=3) }}} As well as being more flexible, it has the advantage of being faster (in that it requires less database lookups). In order to work for m2m relations, this patch requires that patch #3389 be applied (this patch allows assignment of m2m sets using pk values). This relatively simple approach works fine for all database backends except one - Postgres. Because Postgres has and enforces data consistency, it is not possible to INSERT an object with a foreign key value that does not have a corresponding entry in the foreign table. To work around this problem, I have modified table declarations to make all cross-table references DEFERRABLE INITIALLY DEFERRED. This has the effect that the row constraints and consistency checks are not executed until the end of each transaction, rather than after every insert (although if transactions are not in use, there is no difference in behaviour). In this way, if the deserialization process is placed inside a transaction, it is possible to deserialize an arbitrarily complex graph of foreign key relationships, and consistency is only checked once the entire graph has been deserialize… | jacob | russellm | JSON deferrable deserialization circular forward reference | 0 | 1 | 1 | 0 | 0 | 0 | ||
3391 | 2007-01-29 17:09:42 | 2007-02-02 16:18:01 | 2022-03-06 03:28:35.425130 | Design decision needed | closed | Generic views | dev | duplicate | [patch] django.views.generic.list_detail.object_list - add context variables on pagination | The patch is for django.views.generic.list_detail.object_list and the docs. It adds the following variables to context, when the paginated object_list is required: 1. pages_list - the list of page numbers; 2. page_start - the number of the first item on the page; 3. page_end - the number of the last item on the page. They are obviously missing, and are very useful when one need to construct pagination control like this: {{{ PREV 1 2 3 4 5 6 7 NEXT showing 10-20 of 100 items }}} the template source will be like this: {{{ <a href="#">PREV</a> {% for page_num in pages_list %} {{ page_num }} {% endfor %} <a href="#">NEXT</a> showing {{ page_start }}-{{ page_end }} of {{ hits }} }}} | jacob | Max Derkachev <mderk@yandex.ru> | 0 | 1 | 0 | 0 | 0 | 0 | |||
3392 | 2007-01-29 18:59:48 | 2007-01-30 12:11:39 | 2022-03-06 03:28:35.577582 | Unreviewed | closed | *.djangoproject.com | 0.95 | duplicate | "Recent code changes" link on /documentation/ in TicketModule | This is the full URL: http://code.djangoproject.com/timeline?daysback=90&max=50&wiki=on&ticket=on&changeset=on&milestone=on&format=rss I'm sure someone else has reported this or that you already know in some other way, but here's the error message: Ticket changes, Ticket details event provider (TicketModule) failed: AttributeError: 'NoneType' object has no attribute 'lower' | jacob | hwinther@wshosting.org | timeline,rss | 0 | 0 | 0 | 0 | 0 | 0 | ||
3393 | 2007-01-29 19:36:47 | 2011-09-28 16:12:17 | 2022-03-06 03:28:35.739532 | Accepted | closed | Contrib apps | dev | fixed | login view assumes 'set_test_cookie' has been called | Currently, `django.contrib.auth.views.login` instantiates `AuthenticationForm` by passing it the request, which is optional; when this happens, `AuthenticationForm` will fail on valid logins unless `set_test_cookie` has been called previously. The `login` view itself does this, but this prevents easy reusability -- it's a fairly common use case to want to display a login box on each page for non-authenticated users, which means that each view in use must call `set_test_cookie` to ensure that the POST to `login` won't fail. A simple solution to this would be to stop passing the request to `AuthenticationForm`. Perhaps a more flexible solution would be for `login` to begin taking a keyword argument to determine whether it should pass the request or not (and hence, whether `set_test_cookie` will be required or not) | jacob | ubernostrum | auth login set_test_cookie | 0 | 1 | 1 | 0 | 0 | 0 | ||
3394 | 2007-01-29 19:49:45 | 2007-02-13 06:27:29 | 2022-03-06 03:28:35.903689 | Ready for checkin | closed | contrib.admin | dev | fixed | min_num_in_admin is ignored for new parent objects | The documentation for min_num_in_admin states "However, no fewer than min_num_in_admin related objects will ever be displayed." This isn't true, though - when a new parent object is first created, there are always num_in_admin inline children even if this is fewer than the minimum. Attached (trivial) patch fixes this :) | adrian | torne-django@wolfpuppy.org.uk | 0 | 1 | 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 );