1
0
mirror of https://github.com/django/django.git synced 2025-06-05 03:29:12 +00:00

magic-removal: Merged to [1686]

git-svn-id: http://code.djangoproject.com/svn/django/branches/magic-removal@1687 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Adrian Holovaty 2005-12-16 05:05:10 +00:00
parent a01eab5049
commit b5be4a4fcc
8 changed files with 43 additions and 24 deletions

View File

@ -199,7 +199,7 @@ td ul.errorlist li { margin:0 !important; }
/* ACTION ICONS */ /* ACTION ICONS */
.addlink { padding-left:12px; background:url(../img/admin/icon_addlink.gif) 0 .2em no-repeat; } .addlink { padding-left:12px; background:url(../img/admin/icon_addlink.gif) 0 .2em no-repeat; }
.changelink { padding-left:12px; background:url(../img/admin/icon_changelink.gif) 0 .2em no-repeat; } .changelink { padding-left:12px; background:url(../img/admin/icon_changelink.gif) 0 .2em no-repeat; }
.deletelink { padding-left:12px; background:url(../img/admin/icon_deletelink.gif) 0 50% no-repeat; } .deletelink { padding-left:12px; background:url(../img/admin/icon_deletelink.gif) 0 .2em no-repeat; }
a.deletelink:link, a.deletelink:visited { color:#CC3434; } a.deletelink:link, a.deletelink:visited { color:#CC3434; }
a.deletelink:hover { color:#993333; } a.deletelink:hover { color:#993333; }

View File

@ -303,7 +303,7 @@ class _FileCache(_SimpleCache):
os.remove(fname) os.remove(fname)
else: else:
return pickle.load(f) return pickle.load(f)
except (IOError, OSError, pickle.PickleError): except (IOError, OSError, EOFError, pickle.PickleError):
pass pass
return default return default

View File

@ -2,6 +2,7 @@
from django.core.template import resolve_variable, Library from django.core.template import resolve_variable, Library
from django.conf.settings import DATE_FORMAT, TIME_FORMAT from django.conf.settings import DATE_FORMAT, TIME_FORMAT
from django.utils.translation import gettext
import re import re
import random as random_module import random as random_module
@ -351,7 +352,7 @@ def divisibleby(value, arg):
"Returns true if the value is devisible by the argument" "Returns true if the value is devisible by the argument"
return int(value) % int(arg) == 0 return int(value) % int(arg) == 0
def yesno(value, arg=_("yes,no,maybe")): def yesno(value, arg=None):
""" """
Given a string mapping values for true, false and (optionally) None, Given a string mapping values for true, false and (optionally) None,
returns one of those strings accoding to the value: returns one of those strings accoding to the value:
@ -365,7 +366,9 @@ def yesno(value, arg=_("yes,no,maybe")):
``None`` ``"yeah,no"`` ``"no"`` (converts None to False ``None`` ``"yeah,no"`` ``"no"`` (converts None to False
if no mapping for None is given. if no mapping for None is given.
========== ====================== ================================== ========== ====================== ==================================
""" """
if arg is None:
arg = gettext('yes,no,maybe')
bits = arg.split(',') bits = arg.split(',')
if len(bits) < 2: if len(bits) < 2:
return value # Invalid arg. return value # Invalid arg.
@ -470,4 +473,4 @@ register.filter(urlize)
register.filter(urlizetrunc) register.filter(urlizetrunc)
register.filter(wordcount) register.filter(wordcount)
register.filter(wordwrap) register.filter(wordwrap)
register.filter(yesno) register.filter(yesno)

View File

@ -31,21 +31,24 @@
import os, sys, thread, time import os, sys, thread, time
RUN_RELOADER = True RUN_RELOADER = True
reloadFiles = []
def reloader_thread(): def reloader_thread():
mtimes = {} mtimes = {}
win = (sys.platform == "win32")
while RUN_RELOADER: while RUN_RELOADER:
for filename in filter(lambda v: v, map(lambda m: getattr(m, "__file__", None), sys.modules.values())) + reloadFiles: for filename in filter(lambda v: v, map(lambda m: getattr(m, "__file__", None), sys.modules.values())):
if filename.endswith(".pyc") or filename.endswith("*.pyo"):
filename = filename[:-1]
if not os.path.exists(filename): if not os.path.exists(filename):
continue # File might be in an egg, so it can't be reloaded. continue # File might be in an egg, so it can't be reloaded.
if filename.endswith(".pyc"): stat = os.stat(filename)
filename = filename[:-1] mtime = stat.st_mtime
mtime = os.stat(filename).st_mtime if win:
mtime -= stat.st_ctime
if filename not in mtimes: if filename not in mtimes:
mtimes[filename] = mtime mtimes[filename] = mtime
continue continue
if mtime > mtimes[filename]: if mtime != mtimes[filename]:
sys.exit(3) # force reload sys.exit(3) # force reload
time.sleep(1) time.sleep(1)

View File

@ -1,6 +1,7 @@
from django import models from django import models
from django.core.xheaders import populate_xheaders from django.core.xheaders import populate_xheaders
from django.core import template_loader, formfields, meta from django.core.template import loader
from django.core import formfields, meta
from django.views.auth.login import redirect_to_login from django.views.auth.login import redirect_to_login
from django.core.extensions import DjangoContext as Context from django.core.extensions import DjangoContext as Context
from django.core.paginator import ObjectPaginator, InvalidPage from django.core.paginator import ObjectPaginator, InvalidPage
@ -8,7 +9,7 @@ from django.utils.httpwrappers import HttpResponse, HttpResponseRedirect
from django.core.exceptions import Http404, ObjectDoesNotExist, ImproperlyConfigured from django.core.exceptions import Http404, ObjectDoesNotExist, ImproperlyConfigured
def create_object(request, app_label, module_name, template_name=None, def create_object(request, app_label, module_name, template_name=None,
template_loader=template_loader, extra_context={}, template_loader=loader, extra_context={},
post_save_redirect=None, login_required=False, follow=None): post_save_redirect=None, login_required=False, follow=None):
""" """
Generic object-creation function. Generic object-creation function.
@ -70,7 +71,7 @@ def create_object(request, app_label, module_name, template_name=None,
return HttpResponse(t.render(c)) return HttpResponse(t.render(c))
def update_object(request, app_label, module_name, object_id=None, slug=None, def update_object(request, app_label, module_name, object_id=None, slug=None,
slug_field=None, template_name=None, template_loader=template_loader, slug_field=None, template_name=None, template_loader=loader,
extra_lookup_kwargs={}, extra_context={}, post_save_redirect=None, extra_lookup_kwargs={}, extra_context={}, post_save_redirect=None,
login_required=False, follow=None): login_required=False, follow=None):
""" """
@ -145,7 +146,7 @@ def update_object(request, app_label, module_name, object_id=None, slug=None,
def delete_object(request, app_label, module_name, post_delete_redirect, def delete_object(request, app_label, module_name, post_delete_redirect,
object_id=None, slug=None, slug_field=None, template_name=None, object_id=None, slug=None, slug_field=None, template_name=None,
template_loader=template_loader, extra_lookup_kwargs={}, template_loader=loader, extra_lookup_kwargs={},
extra_context={}, login_required=False): extra_context={}, login_required=False):
""" """
Generic object-delete function. Generic object-delete function.

View File

@ -1,4 +1,4 @@
from django.core import template_loader from django.core.template import loader
from django.core.exceptions import Http404, ObjectDoesNotExist from django.core.exceptions import Http404, ObjectDoesNotExist
from django.core.extensions import DjangoContext as Context from django.core.extensions import DjangoContext as Context
from django.core.xheaders import populate_xheaders from django.core.xheaders import populate_xheaders
@ -7,7 +7,7 @@ from django.utils.httpwrappers import HttpResponse
import datetime, time import datetime, time
def archive_index(request, app_label, module_name, date_field, num_latest=15, def archive_index(request, app_label, module_name, date_field, num_latest=15,
template_name=None, template_loader=template_loader, template_name=None, template_loader=loader,
extra_lookup_kwargs={}, extra_context={}, allow_empty=False): extra_lookup_kwargs={}, extra_context={}, allow_empty=False):
""" """
Generic top-level archive of date-based objects. Generic top-level archive of date-based objects.
@ -50,7 +50,7 @@ def archive_index(request, app_label, module_name, date_field, num_latest=15,
return HttpResponse(t.render(c)) return HttpResponse(t.render(c))
def archive_year(request, year, app_label, module_name, date_field, def archive_year(request, year, app_label, module_name, date_field,
template_name=None, template_loader=template_loader, template_name=None, template_loader=loader,
extra_lookup_kwargs={}, extra_context={}): extra_lookup_kwargs={}, extra_context={}):
""" """
Generic yearly archive view. Generic yearly archive view.
@ -87,7 +87,7 @@ def archive_year(request, year, app_label, module_name, date_field,
return HttpResponse(t.render(c)) return HttpResponse(t.render(c))
def archive_month(request, year, month, app_label, module_name, date_field, def archive_month(request, year, month, app_label, module_name, date_field,
month_format='%b', template_name=None, template_loader=template_loader, month_format='%b', template_name=None, template_loader=loader,
extra_lookup_kwargs={}, extra_context={}): extra_lookup_kwargs={}, extra_context={}):
""" """
Generic monthly archive view. Generic monthly archive view.
@ -136,7 +136,7 @@ def archive_month(request, year, month, app_label, module_name, date_field,
def archive_day(request, year, month, day, app_label, module_name, date_field, def archive_day(request, year, month, day, app_label, module_name, date_field,
month_format='%b', day_format='%d', template_name=None, month_format='%b', day_format='%d', template_name=None,
template_loader=template_loader, extra_lookup_kwargs={}, template_loader=loader, extra_lookup_kwargs={},
extra_context={}, allow_empty=False): extra_context={}, allow_empty=False):
""" """
Generic daily archive view. Generic daily archive view.
@ -200,7 +200,7 @@ def archive_today(request, **kwargs):
def object_detail(request, year, month, day, app_label, module_name, date_field, def object_detail(request, year, month, day, app_label, module_name, date_field,
month_format='%b', day_format='%d', object_id=None, slug=None, month_format='%b', day_format='%d', object_id=None, slug=None,
slug_field=None, template_name=None, template_name_field=None, slug_field=None, template_name=None, template_name_field=None,
template_loader=template_loader, extra_lookup_kwargs={}, template_loader=loader, extra_lookup_kwargs={},
extra_context={}): extra_context={}):
""" """
Generic detail view from year/month/day/slug or year/month/day/id structure. Generic detail view from year/month/day/slug or year/month/day/id structure.

View File

@ -1,5 +1,5 @@
from django import models from django import models
from django.core import template_loader from django.core.template import loader
from django.utils.httpwrappers import HttpResponse from django.utils.httpwrappers import HttpResponse
from django.core.xheaders import populate_xheaders from django.core.xheaders import populate_xheaders
from django.core.extensions import DjangoContext as Context from django.core.extensions import DjangoContext as Context
@ -7,7 +7,7 @@ from django.core.paginator import ObjectPaginator, InvalidPage
from django.core.exceptions import Http404, ObjectDoesNotExist from django.core.exceptions import Http404, ObjectDoesNotExist
def object_list(request, app_label, module_name, paginate_by=None, allow_empty=False, def object_list(request, app_label, module_name, paginate_by=None, allow_empty=False,
template_name=None, template_loader=template_loader, template_name=None, template_loader=loader,
extra_lookup_kwargs={}, extra_context={}): extra_lookup_kwargs={}, extra_context={}):
""" """
Generic list of objects. Generic list of objects.
@ -80,7 +80,7 @@ def object_list(request, app_label, module_name, paginate_by=None, allow_empty=F
def object_detail(request, app_label, module_name, object_id=None, slug=None, def object_detail(request, app_label, module_name, object_id=None, slug=None,
slug_field=None, template_name=None, template_name_field=None, slug_field=None, template_name=None, template_name_field=None,
template_loader=template_loader, extra_lookup_kwargs={}, template_loader=loader, extra_lookup_kwargs={},
extra_context={}): extra_context={}):
""" """
Generic list of objects. Generic list of objects.

View File

@ -32,6 +32,18 @@ its setup.py utility. If it's not on your path, you can find it in
``site-packages/django/bin``; consider symlinking to it from some place ``site-packages/django/bin``; consider symlinking to it from some place
on your path, such as /usr/local/bin.) on your path, such as /usr/local/bin.)
.. admonition:: Where should this code live?
If your background is in PHP, you're probably used to putting code under the
Web server's document root (in a place such as ``/var/www``). With Django,
you don't do that. It's not a good idea to put any of this Python code within
your Web server's document root, because it risks the possibility that
people may be able to view your code over the Web. That's not good for
security.
Put your code in some directory **outside** of the document root, such as
``/home/mycode``.
A project is a collection of settings for an instance of Django -- including A project is a collection of settings for an instance of Django -- including
database configuration, Django-specific options and application-specific database configuration, Django-specific options and application-specific
settings. Let's look at what ``startproject`` created:: settings. Let's look at what ``startproject`` created::