mirror of
https://github.com/django/django.git
synced 2025-07-06 10:49:17 +00:00
queryset-refactor: Merged from turnk up to [7135] because I need some stuff.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7136 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
da6570bf08
commit
3dd28bd566
1
AUTHORS
1
AUTHORS
@ -56,6 +56,7 @@ answer newbie questions, and generally made Django that much better:
|
|||||||
David Ascher <http://ascher.ca/>
|
David Ascher <http://ascher.ca/>
|
||||||
Jökull Sólberg Auðunsson <jokullsolberg@gmail.com>
|
Jökull Sólberg Auðunsson <jokullsolberg@gmail.com>
|
||||||
Arthur <avandorp@gmail.com>
|
Arthur <avandorp@gmail.com>
|
||||||
|
David Avsajanishvili <avsd05@gmail.com>
|
||||||
axiak@mit.edu
|
axiak@mit.edu
|
||||||
Jiri Barton
|
Jiri Barton
|
||||||
Ned Batchelder <http://www.nedbatchelder.com/>
|
Ned Batchelder <http://www.nedbatchelder.com/>
|
||||||
|
@ -52,7 +52,7 @@ LANGUAGES = (
|
|||||||
('fa', gettext_noop('Persian')),
|
('fa', gettext_noop('Persian')),
|
||||||
('fi', gettext_noop('Finnish')),
|
('fi', gettext_noop('Finnish')),
|
||||||
('fr', gettext_noop('French')),
|
('fr', gettext_noop('French')),
|
||||||
('ga', gettext_noop('Gaeilge')),
|
('ga', gettext_noop('Irish')),
|
||||||
('gl', gettext_noop('Galician')),
|
('gl', gettext_noop('Galician')),
|
||||||
('hu', gettext_noop('Hungarian')),
|
('hu', gettext_noop('Hungarian')),
|
||||||
('he', gettext_noop('Hebrew')),
|
('he', gettext_noop('Hebrew')),
|
||||||
@ -60,6 +60,7 @@ LANGUAGES = (
|
|||||||
('is', gettext_noop('Icelandic')),
|
('is', gettext_noop('Icelandic')),
|
||||||
('it', gettext_noop('Italian')),
|
('it', gettext_noop('Italian')),
|
||||||
('ja', gettext_noop('Japanese')),
|
('ja', gettext_noop('Japanese')),
|
||||||
|
('ka', gettext_noop('Georgian')),
|
||||||
('ko', gettext_noop('Korean')),
|
('ko', gettext_noop('Korean')),
|
||||||
('km', gettext_noop('Khmer')),
|
('km', gettext_noop('Khmer')),
|
||||||
('kn', gettext_noop('Kannada')),
|
('kn', gettext_noop('Kannada')),
|
||||||
|
BIN
django/conf/locale/ka/LC_MESSAGES/django.mo
Normal file
BIN
django/conf/locale/ka/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
4369
django/conf/locale/ka/LC_MESSAGES/django.po
Normal file
4369
django/conf/locale/ka/LC_MESSAGES/django.po
Normal file
File diff suppressed because it is too large
Load Diff
BIN
django/conf/locale/ka/LC_MESSAGES/djangojs.mo
Normal file
BIN
django/conf/locale/ka/LC_MESSAGES/djangojs.mo
Normal file
Binary file not shown.
118
django/conf/locale/ka/LC_MESSAGES/djangojs.po
Normal file
118
django/conf/locale/ka/LC_MESSAGES/djangojs.po
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
# Translation of Django Java-script part to Georgian.
|
||||||
|
# Copyright (C) 2008
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: django 0.97\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2008-02-16 22:31+0400\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: David Avsajanishvili <avsd05@gmail.com>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:33
|
||||||
|
#, perl-format
|
||||||
|
msgid "Available %s"
|
||||||
|
msgstr "მისაწვდომი %s"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:41
|
||||||
|
msgid "Choose all"
|
||||||
|
msgstr "ავირჩიოთ ყველა"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:46
|
||||||
|
msgid "Add"
|
||||||
|
msgstr "დავამატოთ"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:48
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr "წავშალოთ"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:53
|
||||||
|
#, perl-format
|
||||||
|
msgid "Chosen %s"
|
||||||
|
msgstr "არჩეული %s"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:54
|
||||||
|
msgid "Select your choice(s) and click "
|
||||||
|
msgstr "აირჩიეთ და დააწკაპეთ "
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/SelectFilter2.js:59
|
||||||
|
msgid "Clear all"
|
||||||
|
msgstr "გავასუფთავოთ ყველა"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/calendar.js:24
|
||||||
|
#: contrib/admin/media/js/dateparse.js:32
|
||||||
|
msgid ""
|
||||||
|
"January February March April May June July August September October November "
|
||||||
|
"December"
|
||||||
|
msgstr "იანვარი თებერვალი მარტი აპრილი მაისი ივნისი ივლისი აგვისტო სექტემბერი "
|
||||||
|
"ოქტომბერი ნოემბერი დეკემბერი"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/calendar.js:25
|
||||||
|
msgid "S M T W T F S"
|
||||||
|
msgstr "კ ო ს ო ხ პ შ"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/dateparse.js:33
|
||||||
|
msgid "Sunday Monday Tuesday Wednesday Thursday Friday Saturday"
|
||||||
|
msgstr "კვირა ორშაბათი სამშაბათი ოთხშაბათი ხუთშაბათი პარასკევი შაბათი"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:34
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:72
|
||||||
|
msgid "Show"
|
||||||
|
msgstr "ვაჩვენოთ"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/CollapsedFieldsets.js:63
|
||||||
|
msgid "Hide"
|
||||||
|
msgstr "დავმალოთ"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:47
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:81
|
||||||
|
msgid "Now"
|
||||||
|
msgstr "ახლა"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:51
|
||||||
|
msgid "Clock"
|
||||||
|
msgstr "საათი"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:78
|
||||||
|
msgid "Choose a time"
|
||||||
|
msgstr "ავირჩიოთ დრო"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:82
|
||||||
|
msgid "Midnight"
|
||||||
|
msgstr "შუაღამე"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:83
|
||||||
|
msgid "6 a.m."
|
||||||
|
msgstr "დილის 6 სთ"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:84
|
||||||
|
msgid "Noon"
|
||||||
|
msgstr "შუადღე"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:88
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:183
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "უარი"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:128
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:177
|
||||||
|
msgid "Today"
|
||||||
|
msgstr "დღეს"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:132
|
||||||
|
msgid "Calendar"
|
||||||
|
msgstr "კალენდარი"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:175
|
||||||
|
msgid "Yesterday"
|
||||||
|
msgstr "გუშინ"
|
||||||
|
|
||||||
|
#: contrib/admin/media/js/admin/DateTimeShortcuts.js:179
|
||||||
|
msgid "Tomorrow"
|
||||||
|
msgstr "ხვალ"
|
@ -5,7 +5,7 @@ from django.contrib.auth import authenticate, login
|
|||||||
from django.shortcuts import render_to_response
|
from django.shortcuts import render_to_response
|
||||||
from django.utils.translation import ugettext_lazy, ugettext as _
|
from django.utils.translation import ugettext_lazy, ugettext as _
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
import base64, datetime, md5
|
import base64, md5
|
||||||
import cPickle as pickle
|
import cPickle as pickle
|
||||||
|
|
||||||
ERROR_MESSAGE = ugettext_lazy("Please enter a correct username and password. Note that both fields are case-sensitive.")
|
ERROR_MESSAGE = ugettext_lazy("Please enter a correct username and password. Note that both fields are case-sensitive.")
|
||||||
|
@ -8,8 +8,6 @@ from django.utils.translation import get_date_formats
|
|||||||
from django.utils.encoding import force_unicode
|
from django.utils.encoding import force_unicode
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from django.views.generic import date_based
|
from django.views.generic import date_based
|
||||||
import datetime
|
|
||||||
import time
|
|
||||||
|
|
||||||
class CalendarPlugin(DatabrowsePlugin):
|
class CalendarPlugin(DatabrowsePlugin):
|
||||||
def __init__(self, field_names=None):
|
def __init__(self, field_names=None):
|
||||||
|
@ -7,8 +7,6 @@ from django.utils.text import capfirst
|
|||||||
from django.utils.encoding import smart_str, force_unicode
|
from django.utils.encoding import smart_str, force_unicode
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from django.views.generic import date_based
|
from django.views.generic import date_based
|
||||||
import datetime
|
|
||||||
import time
|
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
class FieldChoicePlugin(DatabrowsePlugin):
|
class FieldChoicePlugin(DatabrowsePlugin):
|
||||||
|
@ -2,8 +2,6 @@ from django.db.models import FieldDoesNotExist, DateTimeField
|
|||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.shortcuts import render_to_response
|
from django.shortcuts import render_to_response
|
||||||
from django.contrib.databrowse.datastructures import EasyModel, EasyChoice
|
from django.contrib.databrowse.datastructures import EasyModel, EasyChoice
|
||||||
import datetime
|
|
||||||
import time
|
|
||||||
|
|
||||||
###########
|
###########
|
||||||
# CHOICES #
|
# CHOICES #
|
||||||
|
@ -3,7 +3,6 @@ Formtools Preview application.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core.exceptions import ImproperlyConfigured
|
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.shortcuts import render_to_response
|
from django.shortcuts import render_to_response
|
||||||
from django.template.context import RequestContext
|
from django.template.context import RequestContext
|
||||||
|
@ -3,8 +3,6 @@ from django.contrib.formtools import preview
|
|||||||
from django import http
|
from django import http
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from django.test.client import Client
|
|
||||||
|
|
||||||
|
|
||||||
success_string = "Done was called!"
|
success_string = "Done was called!"
|
||||||
test_data = {'field1': u'foo',
|
test_data = {'field1': u'foo',
|
||||||
@ -88,6 +86,3 @@ class PreviewTests(TestCase):
|
|||||||
response = self.client.post('/test1/', test_data)
|
response = self.client.post('/test1/', test_data)
|
||||||
self.assertEqual(response.content, success_string)
|
self.assertEqual(response.content, success_string)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
unittest.main()
|
|
||||||
|
@ -2,8 +2,7 @@ from django.utils.translation import ungettext, ugettext as _
|
|||||||
from django.utils.encoding import force_unicode
|
from django.utils.encoding import force_unicode
|
||||||
from django import template
|
from django import template
|
||||||
from django.template import defaultfilters
|
from django.template import defaultfilters
|
||||||
from django.conf import settings
|
from datetime import date
|
||||||
from datetime import date, timedelta
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
register = template.Library()
|
register = template.Library()
|
||||||
|
@ -7,7 +7,6 @@ from django.newforms import ValidationError
|
|||||||
from django.newforms.fields import RegexField, CharField, Select, EMPTY_VALUES
|
from django.newforms.fields import RegexField, CharField, Select, EMPTY_VALUES
|
||||||
from django.utils.encoding import smart_unicode
|
from django.utils.encoding import smart_unicode
|
||||||
from django.utils.translation import ugettext
|
from django.utils.translation import ugettext
|
||||||
import re
|
|
||||||
|
|
||||||
class ARProvinceSelect(Select):
|
class ARProvinceSelect(Select):
|
||||||
"""
|
"""
|
||||||
|
@ -7,8 +7,6 @@ from django.newforms import ValidationError
|
|||||||
from django.utils.translation import ugettext
|
from django.utils.translation import ugettext
|
||||||
from django.newforms.fields import RegexField, Select
|
from django.newforms.fields import RegexField, Select
|
||||||
|
|
||||||
import re
|
|
||||||
|
|
||||||
class JPPostalCodeField(RegexField):
|
class JPPostalCodeField(RegexField):
|
||||||
"""
|
"""
|
||||||
A form field that validates its input is a Japanese postcode.
|
A form field that validates its input is a Japanese postcode.
|
||||||
|
@ -1,10 +1,5 @@
|
|||||||
import os
|
|
||||||
import sys
|
|
||||||
import time
|
|
||||||
import datetime
|
|
||||||
import base64
|
import base64
|
||||||
import md5
|
import md5
|
||||||
import random
|
|
||||||
import cPickle as pickle
|
import cPickle as pickle
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
@ -14,7 +14,6 @@ u'lorem ipsum dolor'
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from django.contrib.webdesign.lorem_ipsum import *
|
from django.contrib.webdesign.lorem_ipsum import *
|
||||||
import datetime
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
import doctest
|
import doctest
|
||||||
|
@ -4,7 +4,6 @@ Serialize data to/from JSON
|
|||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
from django.utils import simplejson
|
from django.utils import simplejson
|
||||||
from django.utils.simplejson import decoder
|
|
||||||
from django.core.serializers.python import Serializer as PythonSerializer
|
from django.core.serializers.python import Serializer as PythonSerializer
|
||||||
from django.core.serializers.python import Deserializer as PythonDeserializer
|
from django.core.serializers.python import Deserializer as PythonDeserializer
|
||||||
try:
|
try:
|
||||||
|
@ -4,7 +4,6 @@ YAML serializer.
|
|||||||
Requires PyYaml (http://pyyaml.org/), but that's checked for in __init__.
|
Requires PyYaml (http://pyyaml.org/), but that's checked for in __init__.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import datetime
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.core.serializers.python import Serializer as PythonSerializer
|
from django.core.serializers.python import Serializer as PythonSerializer
|
||||||
from django.core.serializers.python import Deserializer as PythonDeserializer
|
from django.core.serializers.python import Deserializer as PythonDeserializer
|
||||||
|
@ -21,7 +21,6 @@ if (version < (1,2,1) or (version[:3] == (1, 2, 1) and
|
|||||||
|
|
||||||
from MySQLdb.converters import conversions
|
from MySQLdb.converters import conversions
|
||||||
from MySQLdb.constants import FIELD_TYPE
|
from MySQLdb.constants import FIELD_TYPE
|
||||||
import types
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
# Raise exceptions for database warnings if DEBUG is on
|
# Raise exceptions for database warnings if DEBUG is on
|
||||||
|
@ -160,6 +160,9 @@ class Model(object):
|
|||||||
def __ne__(self, other):
|
def __ne__(self, other):
|
||||||
return not self.__eq__(other)
|
return not self.__eq__(other)
|
||||||
|
|
||||||
|
def __hash__(self):
|
||||||
|
return hash(self._get_pk_val())
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
dispatcher.send(signal=signals.pre_init, sender=self.__class__, args=args, kwargs=kwargs)
|
dispatcher.send(signal=signals.pre_init, sender=self.__class__, args=args, kwargs=kwargs)
|
||||||
|
|
||||||
|
@ -462,6 +462,9 @@ class BooleanField(Field):
|
|||||||
kwargs['blank'] = True
|
kwargs['blank'] = True
|
||||||
Field.__init__(self, *args, **kwargs)
|
Field.__init__(self, *args, **kwargs)
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "BooleanField"
|
||||||
|
|
||||||
def to_python(self, value):
|
def to_python(self, value):
|
||||||
if value in (True, False): return value
|
if value in (True, False): return value
|
||||||
if value in ('t', 'True', '1'): return True
|
if value in ('t', 'True', '1'): return True
|
||||||
@ -480,6 +483,9 @@ class CharField(Field):
|
|||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [oldforms.TextField]
|
return [oldforms.TextField]
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "CharField"
|
||||||
|
|
||||||
def to_python(self, value):
|
def to_python(self, value):
|
||||||
if isinstance(value, basestring):
|
if isinstance(value, basestring):
|
||||||
return value
|
return value
|
||||||
@ -510,6 +516,9 @@ class DateField(Field):
|
|||||||
kwargs['blank'] = True
|
kwargs['blank'] = True
|
||||||
Field.__init__(self, verbose_name, name, **kwargs)
|
Field.__init__(self, verbose_name, name, **kwargs)
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "DateField"
|
||||||
|
|
||||||
def to_python(self, value):
|
def to_python(self, value):
|
||||||
if value is None:
|
if value is None:
|
||||||
return value
|
return value
|
||||||
@ -579,6 +588,9 @@ class DateField(Field):
|
|||||||
return super(DateField, self).formfield(**defaults)
|
return super(DateField, self).formfield(**defaults)
|
||||||
|
|
||||||
class DateTimeField(DateField):
|
class DateTimeField(DateField):
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "DateTimeField"
|
||||||
|
|
||||||
def to_python(self, value):
|
def to_python(self, value):
|
||||||
if value is None:
|
if value is None:
|
||||||
return value
|
return value
|
||||||
@ -649,6 +661,9 @@ class DecimalField(Field):
|
|||||||
self.max_digits, self.decimal_places = max_digits, decimal_places
|
self.max_digits, self.decimal_places = max_digits, decimal_places
|
||||||
Field.__init__(self, verbose_name, name, **kwargs)
|
Field.__init__(self, verbose_name, name, **kwargs)
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "DecimalField"
|
||||||
|
|
||||||
def to_python(self, value):
|
def to_python(self, value):
|
||||||
if value is None:
|
if value is None:
|
||||||
return value
|
return value
|
||||||
@ -708,9 +723,6 @@ class EmailField(CharField):
|
|||||||
kwargs['max_length'] = kwargs.get('max_length', 75)
|
kwargs['max_length'] = kwargs.get('max_length', 75)
|
||||||
CharField.__init__(self, *args, **kwargs)
|
CharField.__init__(self, *args, **kwargs)
|
||||||
|
|
||||||
def get_internal_type(self):
|
|
||||||
return "CharField"
|
|
||||||
|
|
||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [oldforms.EmailField]
|
return [oldforms.EmailField]
|
||||||
|
|
||||||
@ -728,6 +740,9 @@ class FileField(Field):
|
|||||||
kwargs['max_length'] = kwargs.get('max_length', 100)
|
kwargs['max_length'] = kwargs.get('max_length', 100)
|
||||||
Field.__init__(self, verbose_name, name, **kwargs)
|
Field.__init__(self, verbose_name, name, **kwargs)
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "FileField"
|
||||||
|
|
||||||
def get_db_prep_save(self, value):
|
def get_db_prep_save(self, value):
|
||||||
"Returns field's value prepared for saving into a database."
|
"Returns field's value prepared for saving into a database."
|
||||||
# Need to convert UploadedFile objects provided via a form to unicode for database insertion
|
# Need to convert UploadedFile objects provided via a form to unicode for database insertion
|
||||||
@ -837,12 +852,18 @@ class FilePathField(Field):
|
|||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [curry(oldforms.FilePathField, path=self.path, match=self.match, recursive=self.recursive)]
|
return [curry(oldforms.FilePathField, path=self.path, match=self.match, recursive=self.recursive)]
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "FilePathField"
|
||||||
|
|
||||||
class FloatField(Field):
|
class FloatField(Field):
|
||||||
empty_strings_allowed = False
|
empty_strings_allowed = False
|
||||||
|
|
||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [oldforms.FloatField]
|
return [oldforms.FloatField]
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "FloatField"
|
||||||
|
|
||||||
def formfield(self, **kwargs):
|
def formfield(self, **kwargs):
|
||||||
defaults = {'form_class': forms.FloatField}
|
defaults = {'form_class': forms.FloatField}
|
||||||
defaults.update(kwargs)
|
defaults.update(kwargs)
|
||||||
@ -865,6 +886,9 @@ class ImageField(FileField):
|
|||||||
if not self.height_field:
|
if not self.height_field:
|
||||||
setattr(cls, 'get_%s_height' % self.name, curry(cls._get_FIELD_height, field=self))
|
setattr(cls, 'get_%s_height' % self.name, curry(cls._get_FIELD_height, field=self))
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "ImageField"
|
||||||
|
|
||||||
def save_file(self, new_data, new_object, original_object, change, rel, save=True):
|
def save_file(self, new_data, new_object, original_object, change, rel, save=True):
|
||||||
FileField.save_file(self, new_data, new_object, original_object, change, rel, save)
|
FileField.save_file(self, new_data, new_object, original_object, change, rel, save)
|
||||||
# If the image has height and/or width field(s) and they haven't
|
# If the image has height and/or width field(s) and they haven't
|
||||||
@ -887,6 +911,9 @@ class IntegerField(Field):
|
|||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [oldforms.IntegerField]
|
return [oldforms.IntegerField]
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "IntegerField"
|
||||||
|
|
||||||
def formfield(self, **kwargs):
|
def formfield(self, **kwargs):
|
||||||
defaults = {'form_class': forms.IntegerField}
|
defaults = {'form_class': forms.IntegerField}
|
||||||
defaults.update(kwargs)
|
defaults.update(kwargs)
|
||||||
@ -901,6 +928,9 @@ class IPAddressField(Field):
|
|||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [oldforms.IPAddressField]
|
return [oldforms.IPAddressField]
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "IPAddressField"
|
||||||
|
|
||||||
def validate(self, field_data, all_data):
|
def validate(self, field_data, all_data):
|
||||||
validators.isValidIPAddress4(field_data, None)
|
validators.isValidIPAddress4(field_data, None)
|
||||||
|
|
||||||
@ -915,6 +945,9 @@ class NullBooleanField(Field):
|
|||||||
kwargs['null'] = True
|
kwargs['null'] = True
|
||||||
Field.__init__(self, *args, **kwargs)
|
Field.__init__(self, *args, **kwargs)
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "NullBooleanField"
|
||||||
|
|
||||||
def to_python(self, value):
|
def to_python(self, value):
|
||||||
if value in (None, True, False): return value
|
if value in (None, True, False): return value
|
||||||
if value in ('None'): return None
|
if value in ('None'): return None
|
||||||
@ -934,6 +967,9 @@ class PhoneNumberField(IntegerField):
|
|||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [oldforms.PhoneNumberField]
|
return [oldforms.PhoneNumberField]
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "PhoneNumberField"
|
||||||
|
|
||||||
def validate(self, field_data, all_data):
|
def validate(self, field_data, all_data):
|
||||||
validators.isValidPhone(field_data, all_data)
|
validators.isValidPhone(field_data, all_data)
|
||||||
|
|
||||||
@ -947,6 +983,9 @@ class PositiveIntegerField(IntegerField):
|
|||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [oldforms.PositiveIntegerField]
|
return [oldforms.PositiveIntegerField]
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "PositiveIntegerField"
|
||||||
|
|
||||||
def formfield(self, **kwargs):
|
def formfield(self, **kwargs):
|
||||||
defaults = {'min_value': 0}
|
defaults = {'min_value': 0}
|
||||||
defaults.update(kwargs)
|
defaults.update(kwargs)
|
||||||
@ -956,6 +995,9 @@ class PositiveSmallIntegerField(IntegerField):
|
|||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [oldforms.PositiveSmallIntegerField]
|
return [oldforms.PositiveSmallIntegerField]
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "PositiveSmallIntegerField"
|
||||||
|
|
||||||
def formfield(self, **kwargs):
|
def formfield(self, **kwargs):
|
||||||
defaults = {'min_value': 0}
|
defaults = {'min_value': 0}
|
||||||
defaults.update(kwargs)
|
defaults.update(kwargs)
|
||||||
@ -970,14 +1012,23 @@ class SlugField(CharField):
|
|||||||
kwargs['db_index'] = True
|
kwargs['db_index'] = True
|
||||||
super(SlugField, self).__init__(*args, **kwargs)
|
super(SlugField, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "SlugField"
|
||||||
|
|
||||||
class SmallIntegerField(IntegerField):
|
class SmallIntegerField(IntegerField):
|
||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [oldforms.SmallIntegerField]
|
return [oldforms.SmallIntegerField]
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "SmallIntegerField"
|
||||||
|
|
||||||
class TextField(Field):
|
class TextField(Field):
|
||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [oldforms.LargeTextField]
|
return [oldforms.LargeTextField]
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "TextField"
|
||||||
|
|
||||||
def formfield(self, **kwargs):
|
def formfield(self, **kwargs):
|
||||||
defaults = {'widget': forms.Textarea}
|
defaults = {'widget': forms.Textarea}
|
||||||
defaults.update(kwargs)
|
defaults.update(kwargs)
|
||||||
@ -991,6 +1042,9 @@ class TimeField(Field):
|
|||||||
kwargs['editable'] = False
|
kwargs['editable'] = False
|
||||||
Field.__init__(self, verbose_name, name, **kwargs)
|
Field.__init__(self, verbose_name, name, **kwargs)
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "TimeField"
|
||||||
|
|
||||||
def get_db_prep_lookup(self, lookup_type, value):
|
def get_db_prep_lookup(self, lookup_type, value):
|
||||||
if settings.DATABASE_ENGINE == 'oracle':
|
if settings.DATABASE_ENGINE == 'oracle':
|
||||||
# Oracle requires a date in order to parse.
|
# Oracle requires a date in order to parse.
|
||||||
@ -1055,9 +1109,6 @@ class URLField(CharField):
|
|||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [oldforms.URLField]
|
return [oldforms.URLField]
|
||||||
|
|
||||||
def get_internal_type(self):
|
|
||||||
return "CharField"
|
|
||||||
|
|
||||||
def formfield(self, **kwargs):
|
def formfield(self, **kwargs):
|
||||||
defaults = {'form_class': forms.URLField, 'verify_exists': self.verify_exists}
|
defaults = {'form_class': forms.URLField, 'verify_exists': self.verify_exists}
|
||||||
defaults.update(kwargs)
|
defaults.update(kwargs)
|
||||||
@ -1067,6 +1118,9 @@ class USStateField(Field):
|
|||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [oldforms.USStateField]
|
return [oldforms.USStateField]
|
||||||
|
|
||||||
|
def get_internal_type(self):
|
||||||
|
return "USStateField"
|
||||||
|
|
||||||
def formfield(self, **kwargs):
|
def formfield(self, **kwargs):
|
||||||
from django.contrib.localflavor.us.forms import USStateSelect
|
from django.contrib.localflavor.us.forms import USStateSelect
|
||||||
defaults = {'widget': USStateSelect}
|
defaults = {'widget': USStateSelect}
|
||||||
@ -1078,9 +1132,6 @@ class XMLField(TextField):
|
|||||||
self.schema_path = schema_path
|
self.schema_path = schema_path
|
||||||
Field.__init__(self, verbose_name, name, **kwargs)
|
Field.__init__(self, verbose_name, name, **kwargs)
|
||||||
|
|
||||||
def get_internal_type(self):
|
|
||||||
return "TextField"
|
|
||||||
|
|
||||||
def get_manipulator_field_objs(self):
|
def get_manipulator_field_objs(self):
|
||||||
return [curry(oldforms.XMLLargeTextField, schema_path=self.schema_path)]
|
return [curry(oldforms.XMLLargeTextField, schema_path=self.schema_path)]
|
||||||
|
|
||||||
@ -1091,8 +1142,5 @@ class OrderingField(IntegerField):
|
|||||||
kwargs['null'] = True
|
kwargs['null'] = True
|
||||||
IntegerField.__init__(self, **kwargs )
|
IntegerField.__init__(self, **kwargs )
|
||||||
|
|
||||||
def get_internal_type(self):
|
|
||||||
return "IntegerField"
|
|
||||||
|
|
||||||
def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True):
|
def get_manipulator_fields(self, opts, manipulator, change, name_prefix='', rel=False, follow=True):
|
||||||
return [oldforms.HiddenField(name_prefix + self.name)]
|
return [oldforms.HiddenField(name_prefix + self.name)]
|
||||||
|
@ -100,7 +100,7 @@ __all__ = [
|
|||||||
|
|
||||||
import __future__
|
import __future__
|
||||||
|
|
||||||
import sys, traceback, inspect, linecache, os, re, types
|
import sys, traceback, inspect, linecache, os, re
|
||||||
import unittest, difflib, pdb, tempfile
|
import unittest, difflib, pdb, tempfile
|
||||||
import warnings
|
import warnings
|
||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
import datetime
|
|
||||||
import sys
|
import sys
|
||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
from urlparse import urlparse
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.auth import authenticate, login
|
from django.contrib.auth import authenticate, login
|
||||||
from django.core.handlers.base import BaseHandler
|
from django.core.handlers.base import BaseHandler
|
||||||
|
@ -146,4 +146,3 @@ def run_tests(test_labels, verbosity=1, interactive=True, extra_tests=[]):
|
|||||||
teardown_test_environment()
|
teardown_test_environment()
|
||||||
|
|
||||||
return len(result.failures) + len(result.errors)
|
return len(result.failures) + len(result.errors)
|
||||||
|
|
@ -145,7 +145,7 @@ class SortedDict(dict):
|
|||||||
"""Returns a copy of this object."""
|
"""Returns a copy of this object."""
|
||||||
# This way of initializing the copy means it works for subclasses, too.
|
# This way of initializing the copy means it works for subclasses, too.
|
||||||
obj = self.__class__(self)
|
obj = self.__class__(self)
|
||||||
obj.keyOrder = self.keyOrder
|
obj.keyOrder = self.keyOrder[:]
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
@ -1758,8 +1758,7 @@ the cache of all one-to-many relationships ahead of time. Example::
|
|||||||
print e.blog # Doesn't hit the database; uses cached version.
|
print e.blog # Doesn't hit the database; uses cached version.
|
||||||
print e.blog # Doesn't hit the database; uses cached version.
|
print e.blog # Doesn't hit the database; uses cached version.
|
||||||
|
|
||||||
``select_related()`` is documented in the "QuerySet methods that return new
|
``select_related()`` is documented in the `QuerySet methods that return new QuerySets`_ section above.
|
||||||
QuerySets" section above.
|
|
||||||
|
|
||||||
Backward
|
Backward
|
||||||
~~~~~~~~
|
~~~~~~~~
|
||||||
|
@ -353,7 +353,7 @@ How do I install mod_python on Windows?
|
|||||||
working`_.
|
working`_.
|
||||||
|
|
||||||
.. _`win32 build of mod_python for Python 2.4`: http://www.lehuen.com/nicolas/index.php/2005/02/21/39-win32-build-of-mod_python-314-for-python-24
|
.. _`win32 build of mod_python for Python 2.4`: http://www.lehuen.com/nicolas/index.php/2005/02/21/39-win32-build-of-mod_python-314-for-python-24
|
||||||
.. _`Django on Windows howto`: http://thinkhole.org/wp/2006/04/03/django-on-windows-howto/
|
.. _`Django on Windows howto`: http://thinkhole.org/wp/django-on-windows/
|
||||||
.. _`Running mod_python on Apache on Windows2000`: http://groups-beta.google.com/group/comp.lang.python/msg/139af8c83a5a9d4f
|
.. _`Running mod_python on Apache on Windows2000`: http://groups-beta.google.com/group/comp.lang.python/msg/139af8c83a5a9d4f
|
||||||
.. _`guide to getting mod_python working`: http://www.dscpl.com.au/articles/modpython-001.html
|
.. _`guide to getting mod_python working`: http://www.dscpl.com.au/articles/modpython-001.html
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ something like::
|
|||||||
|
|
||||||
for deserialized_object in serializers.deserialize("xml", data):
|
for deserialized_object in serializers.deserialize("xml", data):
|
||||||
if object_should_be_saved(deserialized_object):
|
if object_should_be_saved(deserialized_object):
|
||||||
obj.save()
|
deserialized_object.save()
|
||||||
|
|
||||||
In other words, the usual use is to examine the deserialized objects to make
|
In other words, the usual use is to examine the deserialized objects to make
|
||||||
sure that they are "appropriate" for saving before doing so. Of course, if you trust your data source you could just save the object and move on.
|
sure that they are "appropriate" for saving before doing so. Of course, if you trust your data source you could just save the object and move on.
|
||||||
|
@ -395,6 +395,8 @@ See the `internationalization docs`_ for more.
|
|||||||
django.core.context_processors.media
|
django.core.context_processors.media
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
**New in Django development version**
|
||||||
|
|
||||||
If ``TEMPLATE_CONTEXT_PROCESSORS`` contains this processor, every
|
If ``TEMPLATE_CONTEXT_PROCESSORS`` contains this processor, every
|
||||||
``RequestContext`` will contain a variable ``MEDIA_URL``, providing the
|
``RequestContext`` will contain a variable ``MEDIA_URL``, providing the
|
||||||
value of the `MEDIA_URL setting`_.
|
value of the `MEDIA_URL setting`_.
|
||||||
@ -1014,7 +1016,7 @@ This is not a very common situation, but it's useful if you're rendering a
|
|||||||
template yourself. For example::
|
template yourself. For example::
|
||||||
|
|
||||||
def render(self, context):
|
def render(self, context):
|
||||||
t = template.load_template('small_fragment.html')
|
t = template.loader.get_template('small_fragment.html')
|
||||||
return t.render(Context({'var': obj}, autoescape=context.autoescape))
|
return t.render(Context({'var': obj}, autoescape=context.autoescape))
|
||||||
|
|
||||||
If we had neglected to pass in the current ``context.autoescape`` value to our
|
If we had neglected to pass in the current ``context.autoescape`` value to our
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
This is a basic model with only two non-primary-key fields.
|
This is a basic model with only two non-primary-key fields.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
set
|
||||||
|
except NameError:
|
||||||
|
from sets import Set as set
|
||||||
|
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
class Article(models.Model):
|
class Article(models.Model):
|
||||||
@ -389,4 +394,10 @@ year, including Jan. 1 and Dec. 31.
|
|||||||
>>> a.save()
|
>>> a.save()
|
||||||
>>> Article.objects.get(pk=a.id).headline
|
>>> Article.objects.get(pk=a.id).headline
|
||||||
u'\u6797\u539f \u3081\u3050\u307f'
|
u'\u6797\u539f \u3081\u3050\u307f'
|
||||||
|
|
||||||
|
# Model instances have a hash function, so they can be used in sets or as
|
||||||
|
# dictionary keys. Two models compare as equal if their primary keys are equal.
|
||||||
|
>>> s = set([a10, a11, a12])
|
||||||
|
>>> Article.objects.get(headline='Article 11') in s
|
||||||
|
True
|
||||||
"""
|
"""
|
||||||
|
@ -77,6 +77,8 @@ MultiValueDictKeyError: "Key 'lastname' not found in <MultiValueDict: {'position
|
|||||||
'not one'
|
'not one'
|
||||||
>>> d.keys() == d.copy().keys()
|
>>> d.keys() == d.copy().keys()
|
||||||
True
|
True
|
||||||
|
>>> d2 = d.copy()
|
||||||
|
>>> d2['four'] = 'four'
|
||||||
>>> print repr(d)
|
>>> print repr(d)
|
||||||
{'one': 'not one', 'two': 'two', 'three': 'three'}
|
{'one': 'not one', 'two': 'two', 'three': 'three'}
|
||||||
>>> d.pop('one', 'missing')
|
>>> d.pop('one', 'missing')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user