1
0
mirror of https://github.com/django/django.git synced 2025-07-05 10:19:20 +00:00

[soc2009/multidb] Merged up to trunk r11267.

git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2009/multidb@11272 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Alex Gaynor 2009-07-19 21:31:13 +00:00
parent 8395544774
commit 0536cb98d5
6 changed files with 136 additions and 124 deletions

View File

@ -14,6 +14,7 @@ The PRIMARY AUTHORS are (and/or have been):
* Robert Wittams * Robert Wittams
* Gary Wilson * Gary Wilson
* Brian Rosner * Brian Rosner
* Justin Bronn
* Karen Tracey * Karen Tracey
More information on the main contributors to Django can be found in More information on the main contributors to Django can be found in

View File

@ -14,16 +14,12 @@ that need to be done. I'm trying to be as granular as possible.
flush, reset, and syncdb need to not prompt the user multiple times. flush, reset, and syncdb need to not prompt the user multiple times.
3) Remove any references to the global ``django.db.connection`` object in the 3) Handle nesting of Querysets using __in across multiple dbs.
SQL creation process. This includes(but is probably not limited to):
* The way we create ``Query`` from ``BaseQuery`` is awkward and hacky. 4) Handle backends with custom Query classes.
* ``Field.get_db_prep_lookup``
* ``DateField.get_db_prep_value``
* ``DateTimeField.get_db_prep_value``
* ``DecimalField.get_db_prep_save``
* ``TimeField.get_db_prep_value``
4) Wait on the merge of the m2m stuff. 5) Wait on the merge of the m2m stuff.
6) Time permitting add support for a ``DatabaseManager``. 6) Fix django.contrib.gis, it's broken in all sorts of ways.
7) Time permitting add support for a ``DatabaseManager``.

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Django\n" "Project-Id-Version: Django\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-05-20 12:58+0200\n" "POT-Creation-Date: 2009-07-17 21:59+0200\n"
"PO-Revision-Date: 2008-02-25 15:53+0100\n" "PO-Revision-Date: 2008-02-25 15:53+0100\n"
"Last-Translator: Jarek Zgoda <jarek.zgoda@gmail.com>\n" "Last-Translator: Jarek Zgoda <jarek.zgoda@gmail.com>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -223,7 +223,7 @@ msgstr "chiński tradycyjny"
msgid "Successfully deleted %(count)d %(items)s." msgid "Successfully deleted %(count)d %(items)s."
msgstr "Usunięto %(count)d %(items)s." msgstr "Usunięto %(count)d %(items)s."
#: contrib/admin/actions.py:67 contrib/admin/options.py:1025 #: contrib/admin/actions.py:67 contrib/admin/options.py:1027
msgid "Are you sure?" msgid "Are you sure?"
msgstr "Jesteś pewien?" msgstr "Jesteś pewien?"
@ -321,7 +321,7 @@ msgstr "Zmieniono %s"
#: contrib/admin/options.py:519 contrib/admin/options.py:529 #: contrib/admin/options.py:519 contrib/admin/options.py:529
#: contrib/comments/templates/comments/preview.html:16 forms/models.py:388 #: contrib/comments/templates/comments/preview.html:16 forms/models.py:388
#: forms/models.py:587 #: forms/models.py:600
msgid "and" msgid "and"
msgstr "i" msgstr "i"
@ -344,53 +344,53 @@ msgstr "Usunięto %(name)s \"%(object)s\"."
msgid "No fields changed." msgid "No fields changed."
msgstr "Żadne pole nie zmienione." msgstr "Żadne pole nie zmienione."
#: contrib/admin/options.py:598 contrib/auth/admin.py:67 #: contrib/admin/options.py:599 contrib/auth/admin.py:67
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was added successfully." msgid "The %(name)s \"%(obj)s\" was added successfully."
msgstr "%(name)s \"%(obj)s\" dodany pomyślnie." msgstr "%(name)s \"%(obj)s\" dodany pomyślnie."
#: contrib/admin/options.py:602 contrib/admin/options.py:635 #: contrib/admin/options.py:603 contrib/admin/options.py:636
#: contrib/auth/admin.py:75 #: contrib/auth/admin.py:75
msgid "You may edit it again below." msgid "You may edit it again below."
msgstr "Możesz ponownie edytować wpis poniżej." msgstr "Możesz ponownie edytować wpis poniżej."
#: contrib/admin/options.py:612 contrib/admin/options.py:645 #: contrib/admin/options.py:613 contrib/admin/options.py:646
#, python-format #, python-format
msgid "You may add another %s below." msgid "You may add another %s below."
msgstr "Możesz dodać nowy wpis %s poniżej." msgstr "Możesz dodać nowy wpis %s poniżej."
#: contrib/admin/options.py:633 #: contrib/admin/options.py:634
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was changed successfully." msgid "The %(name)s \"%(obj)s\" was changed successfully."
msgstr "%(name)s \"%(obj)s\" zostało pomyślnie zmienione." msgstr "%(name)s \"%(obj)s\" zostało pomyślnie zmienione."
#: contrib/admin/options.py:641 #: contrib/admin/options.py:642
#, python-format #, python-format
msgid "" msgid ""
"The %(name)s \"%(obj)s\" was added successfully. You may edit it again below." "The %(name)s \"%(obj)s\" was added successfully. You may edit it again below."
msgstr "" msgstr ""
"%(name)s \"%(obj)s\" dodane pomyślnie. Możesz edytować ponownie wpis poniżej." "%(name)s \"%(obj)s\" dodane pomyślnie. Możesz edytować ponownie wpis poniżej."
#: contrib/admin/options.py:772 #: contrib/admin/options.py:773
#, python-format #, python-format
msgid "Add %s" msgid "Add %s"
msgstr "Dodaj %s" msgstr "Dodaj %s"
#: contrib/admin/options.py:803 contrib/admin/options.py:1003 #: contrib/admin/options.py:804 contrib/admin/options.py:1005
#, python-format #, python-format
msgid "%(name)s object with primary key %(key)r does not exist." msgid "%(name)s object with primary key %(key)r does not exist."
msgstr "Obiekt %(name)s o kluczu głównym %(key)r nie istnieje." msgstr "Obiekt %(name)s o kluczu głównym %(key)r nie istnieje."
#: contrib/admin/options.py:860 #: contrib/admin/options.py:861
#, python-format #, python-format
msgid "Change %s" msgid "Change %s"
msgstr "Zmień %s" msgstr "Zmień %s"
#: contrib/admin/options.py:904 #: contrib/admin/options.py:905
msgid "Database error" msgid "Database error"
msgstr "Błąd bazy danych" msgstr "Błąd bazy danych"
#: contrib/admin/options.py:940 #: contrib/admin/options.py:941
#, python-format #, python-format
msgid "%(count)s %(name)s was changed successfully." msgid "%(count)s %(name)s was changed successfully."
msgid_plural "%(count)s %(name)s were changed successfully." msgid_plural "%(count)s %(name)s were changed successfully."
@ -398,17 +398,17 @@ msgstr[0] "%(count)s %(name)s został pomyślnie zmieniony."
msgstr[1] "%(count)s %(name)s zostały pomyślnie zmienione." msgstr[1] "%(count)s %(name)s zostały pomyślnie zmienione."
msgstr[2] "%(count)s %(name)s zostało pomyślnie zmienionych." msgstr[2] "%(count)s %(name)s zostało pomyślnie zmienionych."
#: contrib/admin/options.py:1018 #: contrib/admin/options.py:1020
#, python-format #, python-format
msgid "The %(name)s \"%(obj)s\" was deleted successfully." msgid "The %(name)s \"%(obj)s\" was deleted successfully."
msgstr "%(name)s \"%(obj)s\" usunięty pomyślnie." msgstr "%(name)s \"%(obj)s\" usunięty pomyślnie."
#: contrib/admin/options.py:1054 #: contrib/admin/options.py:1057
#, python-format #, python-format
msgid "Change history: %s" msgid "Change history: %s"
msgstr "Historia zmian: %s" msgstr "Historia zmian: %s"
#: contrib/admin/sites.py:20 contrib/admin/views/decorators.py:14 #: contrib/admin/sites.py:21 contrib/admin/views/decorators.py:14
#: contrib/auth/forms.py:80 #: contrib/auth/forms.py:80
msgid "" msgid ""
"Please enter a correct username and password. Note that both fields are case-" "Please enter a correct username and password. Note that both fields are case-"
@ -417,11 +417,11 @@ msgstr ""
"Proszę wpisać poprawną nazwę użytkownika i hasło. Uwaga: wielkość liter ma " "Proszę wpisać poprawną nazwę użytkownika i hasło. Uwaga: wielkość liter ma "
"znaczenie." "znaczenie."
#: contrib/admin/sites.py:278 contrib/admin/views/decorators.py:40 #: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:40
msgid "Please log in again, because your session has expired." msgid "Please log in again, because your session has expired."
msgstr "Twoja sesja wygasła, zaloguj się ponownie." msgstr "Twoja sesja wygasła, zaloguj się ponownie."
#: contrib/admin/sites.py:285 contrib/admin/views/decorators.py:47 #: contrib/admin/sites.py:292 contrib/admin/views/decorators.py:47
msgid "" msgid ""
"Looks like your browser isn't configured to accept cookies. Please enable " "Looks like your browser isn't configured to accept cookies. Please enable "
"cookies, reload this page, and try again." "cookies, reload this page, and try again."
@ -429,27 +429,27 @@ msgstr ""
"Twoja przeglądarka nie chce akceptować ciasteczek. Zmień jej ustawienia i " "Twoja przeglądarka nie chce akceptować ciasteczek. Zmień jej ustawienia i "
"spróbuj ponownie." "spróbuj ponownie."
#: contrib/admin/sites.py:301 contrib/admin/sites.py:307 #: contrib/admin/sites.py:308 contrib/admin/sites.py:314
#: contrib/admin/views/decorators.py:66 #: contrib/admin/views/decorators.py:66
msgid "Usernames cannot contain the '@' character." msgid "Usernames cannot contain the '@' character."
msgstr "Nazwy użytkowników nie mogą zawierać znaku '@'." msgstr "Nazwy użytkowników nie mogą zawierać znaku '@'."
#: contrib/admin/sites.py:304 contrib/admin/views/decorators.py:62 #: contrib/admin/sites.py:311 contrib/admin/views/decorators.py:62
#, python-format #, python-format
msgid "Your e-mail address is not your username. Try '%s' instead." msgid "Your e-mail address is not your username. Try '%s' instead."
msgstr "Podany adres e-mail nie jest Twoją nazwą użytkownika. Spróbuj '%s'." msgstr "Podany adres e-mail nie jest Twoją nazwą użytkownika. Spróbuj '%s'."
#: contrib/admin/sites.py:360 #: contrib/admin/sites.py:367
msgid "Site administration" msgid "Site administration"
msgstr "Administracja stroną" msgstr "Administracja stroną"
#: contrib/admin/sites.py:373 contrib/admin/templates/admin/login.html:26 #: contrib/admin/sites.py:381 contrib/admin/templates/admin/login.html:26
#: contrib/admin/templates/registration/password_reset_complete.html:14 #: contrib/admin/templates/registration/password_reset_complete.html:14
#: contrib/admin/views/decorators.py:20 #: contrib/admin/views/decorators.py:20
msgid "Log in" msgid "Log in"
msgstr "Zaloguj się" msgstr "Zaloguj się"
#: contrib/admin/sites.py:417 #: contrib/admin/sites.py:426
#, python-format #, python-format
msgid "%s administration" msgid "%s administration"
msgstr "%s - administracja" msgstr "%s - administracja"
@ -484,7 +484,7 @@ msgstr "Zmień:"
msgid "Lookup" msgid "Lookup"
msgstr "Szukaj" msgstr "Szukaj"
#: contrib/admin/widgets.py:236 #: contrib/admin/widgets.py:235
msgid "Add Another" msgid "Add Another"
msgstr "Dodaj kolejny" msgstr "Dodaj kolejny"
@ -499,7 +499,7 @@ msgstr "Niestety, żądana strona nie została znaleziona."
#: contrib/admin/templates/admin/500.html:4 #: contrib/admin/templates/admin/500.html:4
#: contrib/admin/templates/admin/app_index.html:8 #: contrib/admin/templates/admin/app_index.html:8
#: contrib/admin/templates/admin/base.html:31 #: contrib/admin/templates/admin/base.html:54
#: contrib/admin/templates/admin/change_form.html:17 #: contrib/admin/templates/admin/change_form.html:17
#: contrib/admin/templates/admin/change_list.html:25 #: contrib/admin/templates/admin/change_list.html:25
#: contrib/admin/templates/admin/delete_confirmation.html:6 #: contrib/admin/templates/admin/delete_confirmation.html:6
@ -545,7 +545,7 @@ msgstr "Wykonaj wybraną akcję"
#: contrib/admin/templates/admin/actions.html:4 #: contrib/admin/templates/admin/actions.html:4
msgid "Go" msgid "Go"
msgstr "Szukaj" msgstr "Wykonaj"
#: contrib/admin/templates/admin/app_index.html:10 #: contrib/admin/templates/admin/app_index.html:10
#: contrib/admin/templates/admin/index.html:19 #: contrib/admin/templates/admin/index.html:19
@ -553,18 +553,18 @@ msgstr "Szukaj"
msgid "%(name)s" msgid "%(name)s"
msgstr "%(name)s" msgstr "%(name)s"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:27
msgid "Welcome," msgid "Welcome,"
msgstr "Witaj," msgstr "Witaj,"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:32
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
#: contrib/admindocs/templates/admin_doc/bookmarklets.html:3 #: contrib/admindocs/templates/admin_doc/bookmarklets.html:3
msgid "Documentation" msgid "Documentation"
msgstr "Dokumentacja" msgstr "Dokumentacja"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:40
#: contrib/admin/templates/admin/auth/user/change_password.html:14 #: contrib/admin/templates/admin/auth/user/change_password.html:14
#: contrib/admin/templates/admin/auth/user/change_password.html:47 #: contrib/admin/templates/admin/auth/user/change_password.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
@ -572,7 +572,7 @@ msgstr "Dokumentacja"
msgid "Change password" msgid "Change password"
msgstr "Zmiana hasła" msgstr "Zmiana hasła"
#: contrib/admin/templates/admin/base.html:26 #: contrib/admin/templates/admin/base.html:47
#: contrib/admin/templates/registration/password_change_done.html:3 #: contrib/admin/templates/registration/password_change_done.html:3
#: contrib/admin/templates/registration/password_change_form.html:3 #: contrib/admin/templates/registration/password_change_form.html:3
msgid "Log out" msgid "Log out"
@ -755,6 +755,11 @@ msgstr ""
msgid "Show all" msgid "Show all"
msgstr "Pokaż wszystko" msgstr "Pokaż wszystko"
#: contrib/admin/templates/admin/pagination.html:11
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Zapisz"
#: contrib/admin/templates/admin/search_form.html:8 #: contrib/admin/templates/admin/search_form.html:8
msgid "Search" msgid "Search"
msgstr "Szukaj" msgstr "Szukaj"
@ -772,10 +777,6 @@ msgstr[2] "%(counter)s wyników"
msgid "%(full_result_count)s total" msgid "%(full_result_count)s total"
msgstr "%(full_result_count)s trafień" msgstr "%(full_result_count)s trafień"
#: contrib/admin/templates/admin/submit_line.html:3
msgid "Save"
msgstr "Zapisz"
#: contrib/admin/templates/admin/submit_line.html:5 #: contrib/admin/templates/admin/submit_line.html:5
msgid "Save as new" msgid "Save as new"
msgstr "Zapisz jako nowe" msgstr "Zapisz jako nowe"
@ -999,144 +1000,145 @@ msgstr "strona"
msgid "template" msgid "template"
msgstr "szablon" msgstr "szablon"
#: contrib/admindocs/views.py:58 contrib/admindocs/views.py:60 #: contrib/admindocs/views.py:61 contrib/admindocs/views.py:63
#: contrib/admindocs/views.py:62 #: contrib/admindocs/views.py:65
msgid "tag:" msgid "tag:"
msgstr "tag:" msgstr "tag:"
#: contrib/admindocs/views.py:91 contrib/admindocs/views.py:93 #: contrib/admindocs/views.py:94 contrib/admindocs/views.py:96
#: contrib/admindocs/views.py:95 #: contrib/admindocs/views.py:98
msgid "filter:" msgid "filter:"
msgstr "filtr:" msgstr "filtr:"
#: contrib/admindocs/views.py:155 contrib/admindocs/views.py:157 #: contrib/admindocs/views.py:158 contrib/admindocs/views.py:160
#: contrib/admindocs/views.py:159 #: contrib/admindocs/views.py:162
msgid "view:" msgid "view:"
msgstr "widok:" msgstr "widok:"
#: contrib/admindocs/views.py:187 #: contrib/admindocs/views.py:190
#, python-format #, python-format
msgid "App %r not found" msgid "App %r not found"
msgstr "Aplikacja %r nie została znaleziona" msgstr "Aplikacja %r nie została znaleziona"
#: contrib/admindocs/views.py:194 #: contrib/admindocs/views.py:197
#, python-format #, python-format
msgid "Model %(model_name)r not found in app %(app_label)r" msgid "Model %(model_name)r not found in app %(app_label)r"
msgstr "Model %(model_name)r nie został znaleziony w aplikacji %(app_label)r" msgstr "Model %(model_name)r nie został znaleziony w aplikacji %(app_label)r"
#: contrib/admindocs/views.py:206 #: contrib/admindocs/views.py:209
#, python-format #, python-format
msgid "the related `%(app_label)s.%(data_type)s` object" msgid "the related `%(app_label)s.%(data_type)s` object"
msgstr "powiązany obiekt `%(app_label)s.%(data_type)s`" msgstr "powiązany obiekt `%(app_label)s.%(data_type)s`"
#: contrib/admindocs/views.py:206 contrib/admindocs/views.py:228 #: contrib/admindocs/views.py:209 contrib/admindocs/views.py:228
#: contrib/admindocs/views.py:242 contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:247
#: contrib/admindocs/views.py:261 contrib/admindocs/views.py:266
msgid "model:" msgid "model:"
msgstr "model:" msgstr "model:"
#: contrib/admindocs/views.py:237 #: contrib/admindocs/views.py:224 contrib/admindocs/views.py:256
#, python-format #, python-format
msgid "related `%(app_label)s.%(object_name)s` objects" msgid "related `%(app_label)s.%(object_name)s` objects"
msgstr "powiązane obiekty `%(app_label)s.%(object_name)s`" msgstr "powiązane obiekty `%(app_label)s.%(object_name)s`"
#: contrib/admindocs/views.py:242 #: contrib/admindocs/views.py:228 contrib/admindocs/views.py:261
#, python-format #, python-format
msgid "all %s" msgid "all %s"
msgstr "wszystkie %s" msgstr "wszystkie %s"
#: contrib/admindocs/views.py:247 #: contrib/admindocs/views.py:233 contrib/admindocs/views.py:266
#, python-format #, python-format
msgid "number of %s" msgid "number of %s"
msgstr "liczba %s" msgstr "liczba %s"
#: contrib/admindocs/views.py:252 #: contrib/admindocs/views.py:271
#, python-format #, python-format
msgid "Fields on %s objects" msgid "Fields on %s objects"
msgstr "Pola obiektów %s" msgstr "Pola obiektów %s"
#: contrib/admindocs/views.py:315 contrib/admindocs/views.py:326 #: contrib/admindocs/views.py:334 contrib/admindocs/views.py:345
#: contrib/admindocs/views.py:328 contrib/admindocs/views.py:334 #: contrib/admindocs/views.py:347 contrib/admindocs/views.py:353
#: contrib/admindocs/views.py:335 contrib/admindocs/views.py:337 #: contrib/admindocs/views.py:354 contrib/admindocs/views.py:356
msgid "Integer" msgid "Integer"
msgstr "Liczba całkowita" msgstr "Liczba całkowita"
#: contrib/admindocs/views.py:316 #: contrib/admindocs/views.py:335
msgid "Boolean (Either True or False)" msgid "Boolean (Either True or False)"
msgstr "Wartość logiczna (True, False - prawda lub fałsz)" msgstr "Wartość logiczna (True, False - prawda lub fałsz)"
#: contrib/admindocs/views.py:317 contrib/admindocs/views.py:336 #: contrib/admindocs/views.py:336 contrib/admindocs/views.py:355
#, python-format #, python-format
msgid "String (up to %(max_length)s)" msgid "String (up to %(max_length)s)"
msgstr "Łańcuch (do %(max_length)s znaków)" msgstr "Łańcuch (do %(max_length)s znaków)"
#: contrib/admindocs/views.py:318 #: contrib/admindocs/views.py:337
msgid "Comma-separated integers" msgid "Comma-separated integers"
msgstr "Liczby całkowite rozdzielone przecinkami" msgstr "Liczby całkowite rozdzielone przecinkami"
#: contrib/admindocs/views.py:319 #: contrib/admindocs/views.py:338
msgid "Date (without time)" msgid "Date (without time)"
msgstr "Data (bez godziny)" msgstr "Data (bez godziny)"
#: contrib/admindocs/views.py:320 #: contrib/admindocs/views.py:339
msgid "Date (with time)" msgid "Date (with time)"
msgstr "Data (z godziną)" msgstr "Data (z godziną)"
#: contrib/admindocs/views.py:321 #: contrib/admindocs/views.py:340
msgid "Decimal number" msgid "Decimal number"
msgstr "Liczba dziesiętna" msgstr "Liczba dziesiętna"
#: contrib/admindocs/views.py:322 #: contrib/admindocs/views.py:341
msgid "E-mail address" msgid "E-mail address"
msgstr "Adres e-mail" msgstr "Adres e-mail"
#: contrib/admindocs/views.py:323 contrib/admindocs/views.py:324 #: contrib/admindocs/views.py:342 contrib/admindocs/views.py:343
#: contrib/admindocs/views.py:327 #: contrib/admindocs/views.py:346
msgid "File path" msgid "File path"
msgstr "Ścieżka do pliku" msgstr "Ścieżka do pliku"
#: contrib/admindocs/views.py:325 #: contrib/admindocs/views.py:344
msgid "Floating point number" msgid "Floating point number"
msgstr "Liczba zmiennoprzecinkowa" msgstr "Liczba zmiennoprzecinkowa"
#: contrib/admindocs/views.py:329 contrib/comments/models.py:60 #: contrib/admindocs/views.py:348 contrib/comments/models.py:60
msgid "IP address" msgid "IP address"
msgstr "Adres IP" msgstr "Adres IP"
#: contrib/admindocs/views.py:331 #: contrib/admindocs/views.py:350
msgid "Boolean (Either True, False or None)" msgid "Boolean (Either True, False or None)"
msgstr "Wartość logiczna (True, False, None - prawda, fałsz lub nic)" msgstr "Wartość logiczna (True, False, None - prawda, fałsz lub nic)"
#: contrib/admindocs/views.py:332 #: contrib/admindocs/views.py:351
msgid "Relation to parent model" msgid "Relation to parent model"
msgstr "Relacja do modelu rodzica" msgstr "Relacja do modelu rodzica"
#: contrib/admindocs/views.py:333 #: contrib/admindocs/views.py:352
msgid "Phone number" msgid "Phone number"
msgstr "Numer telefonu" msgstr "Numer telefonu"
#: contrib/admindocs/views.py:338 #: contrib/admindocs/views.py:357
msgid "Text" msgid "Text"
msgstr "Tekst" msgstr "Tekst"
#: contrib/admindocs/views.py:339 #: contrib/admindocs/views.py:358
msgid "Time" msgid "Time"
msgstr "Czas" msgstr "Czas"
#: contrib/admindocs/views.py:340 contrib/comments/forms.py:95 #: contrib/admindocs/views.py:359 contrib/comments/forms.py:95
#: contrib/comments/templates/comments/moderation_queue.html:37 #: contrib/comments/templates/comments/moderation_queue.html:37
#: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7 #: contrib/flatpages/admin.py:8 contrib/flatpages/models.py:7
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
#: contrib/admindocs/views.py:341 #: contrib/admindocs/views.py:360
msgid "U.S. state (two uppercase letters)" msgid "U.S. state (two uppercase letters)"
msgstr "Stan USA (dwie duże litery)" msgstr "Stan USA (dwie duże litery)"
#: contrib/admindocs/views.py:342 #: contrib/admindocs/views.py:361
msgid "XML text" msgid "XML text"
msgstr "Tekst XML" msgstr "Tekst XML"
#: contrib/admindocs/views.py:368 #: contrib/admindocs/views.py:387
#, python-format #, python-format
msgid "%s does not appear to be a urlpattern object" msgid "%s does not appear to be a urlpattern object"
msgstr "%s nie jest obiektem urlpattern" msgstr "%s nie jest obiektem urlpattern"
@ -3920,14 +3922,14 @@ msgstr ""
msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format." msgid "Enter a valid time in HH:MM[:ss[.uuuuuu]] format."
msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM[:ss[.uuuuuu]]." msgstr "Proszę wpisać poprawną godzinę w formacie HH:MM[:ss[.uuuuuu]]."
#: db/models/fields/related.py:792 #: db/models/fields/related.py:816
msgid "" msgid ""
"Hold down \"Control\", or \"Command\" on a Mac, to select more than one." "Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
msgstr "" msgstr ""
"Przytrzymaj wciśnięty klawisz \"Ctrl\" lub \"Command\" na Mac'u aby " "Przytrzymaj wciśnięty klawisz \"Ctrl\" lub \"Command\" na Mac'u aby "
"zaznaczyć więcej niż jeden wybór." "zaznaczyć więcej niż jeden wybór."
#: db/models/fields/related.py:870 #: db/models/fields/related.py:894
#, python-format #, python-format
msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid." msgid "Please enter valid %(self)s IDs. The value %(value)r is invalid."
msgid_plural "" msgid_plural ""
@ -4051,7 +4053,7 @@ msgid "Select a valid choice. %(value)s is not one of the available choices."
msgstr "" msgstr ""
"Wybierz poprawną wartość. %(value)s nie jest jednym z dostępnych wyborów." "Wybierz poprawną wartość. %(value)s nie jest jednym z dostępnych wyborów."
#: forms/fields.py:704 forms/fields.py:765 forms/models.py:991 #: forms/fields.py:704 forms/fields.py:765 forms/models.py:1003
msgid "Enter a list of values." msgid "Enter a list of values."
msgstr "Podaj listę wartości." msgstr "Podaj listę wartości."
@ -4080,43 +4082,43 @@ msgstr ""
msgid "%(model_name)s with this %(field_label)s already exists." msgid "%(model_name)s with this %(field_label)s already exists."
msgstr "%(field_label)s już istnieje w %(model_name)s." msgstr "%(field_label)s już istnieje w %(model_name)s."
#: forms/models.py:581 #: forms/models.py:594
#, python-format #, python-format
msgid "Please correct the duplicate data for %(field)s." msgid "Please correct the duplicate data for %(field)s."
msgstr "Popraw zduplikowane dane w %(field)s." msgstr "Popraw zduplikowane dane w %(field)s."
#: forms/models.py:585 #: forms/models.py:598
#, python-format #, python-format
msgid "Please correct the duplicate data for %(field)s, which must be unique." msgid "Please correct the duplicate data for %(field)s, which must be unique."
msgstr "Popraw zduplikowane dane w %(field)s, które wymaga unikalności." msgstr "Popraw zduplikowane dane w %(field)s, które wymaga unikalności."
#: forms/models.py:591 #: forms/models.py:604
#, python-format #, python-format
msgid "" msgid ""
"Please correct the duplicate data for %(field_name)s which must be unique " "Please correct the duplicate data for %(field_name)s which must be unique "
"for the %(lookup)s in %(date_field)s." "for the %(lookup)s in %(date_field)s."
msgstr "" msgstr ""
"Popraw zduplikowane dane w %(field_name)s, które wymaga unikalności dla " "Popraw zduplikowane dane w %(field_name)s, które wymaga unikalności dla %"
"%(lookup)s w polu %(date_field)s." "(lookup)s w polu %(date_field)s."
#: forms/models.py:599 #: forms/models.py:612
msgid "Please correct the duplicate values below." msgid "Please correct the duplicate values below."
msgstr "Popraw poniższe zduplikowane wartości." msgstr "Popraw poniższe zduplikowane wartości."
#: forms/models.py:855 #: forms/models.py:867
msgid "The inline foreign key did not match the parent instance primary key." msgid "The inline foreign key did not match the parent instance primary key."
msgstr "Osadzony klucz obcy nie pasuje do klucza głównego obiektu rodzica." msgstr "Osadzony klucz obcy nie pasuje do klucza głównego obiektu rodzica."
#: forms/models.py:918 #: forms/models.py:930
msgid "Select a valid choice. That choice is not one of the available choices." msgid "Select a valid choice. That choice is not one of the available choices."
msgstr "Wybierz poprawną wartość. Podana nie jest jednym z dostępnych wyborów." msgstr "Wybierz poprawną wartość. Podana nie jest jednym z dostępnych wyborów."
#: forms/models.py:992 #: forms/models.py:1004
#, python-format #, python-format
msgid "Select a valid choice. %s is not one of the available choices." msgid "Select a valid choice. %s is not one of the available choices."
msgstr "Wybierz poprawną wartość. %s nie jest jednym z dostępnych wyborów." msgstr "Wybierz poprawną wartość. %s nie jest jednym z dostępnych wyborów."
#: forms/models.py:994 #: forms/models.py:1006
#, python-format #, python-format
msgid "\"%s\" is not a valid value for a primary key." msgid "\"%s\" is not a valid value for a primary key."
msgstr "\"%s\" nie jest poprawną wartością klucza głównego." msgstr "\"%s\" nie jest poprawną wartością klucza głównego."

View File

@ -154,6 +154,19 @@ Gary Wilson
broken windows. He's continued to do that necessary tidying up work broken windows. He's continued to do that necessary tidying up work
throughout the code base since then. throughout the code base since then.
Justin Bronn
Justin Bronn is a computer scientist and attorney specializing
in legal topics related to intellectual property and spatial law.
In 2007, Justin began developing ``django.contrib.gis`` in a branch,
a.k.a. GeoDjango_, which was merged in time for Django 1.0. While
implementing GeoDjango, Justin obtained a deep knowledge of Django's
internals including the ORM, the admin, and Oracle support.
Justin lives in Houston, Texas.
.. _GeoDjango: http://geodjango.org/
Karen Tracey Karen Tracey
Karen has a background in distributed operating systems (graduate school), Karen has a background in distributed operating systems (graduate school),
communications software (industry) and crossword puzzle construction communications software (industry) and crossword puzzle construction
@ -187,16 +200,6 @@ Ian Kelly
Matt Boersma Matt Boersma
Matt is also responsible for Django's Oracle support. Matt is also responsible for Django's Oracle support.
Justin Bronn
Justin Bronn is a computer scientist and third-year law student at the
University of Houston who enjoys studying legal topics related to
intellectual property and spatial law.
Justin is the primary developer of ``django.contrib.gis``, a.k.a.
GeoDjango_.
.. _GeoDjango: http://geodjango.org/
Jeremy Dunck Jeremy Dunck
Jeremy the lead developer of Pegasus News, a personalized local site based Jeremy the lead developer of Pegasus News, a personalized local site based
in Dallas, Texas. An early contributor to Greasemonkey and Django, he sees in Dallas, Texas. An early contributor to Greasemonkey and Django, he sees

View File

@ -4,6 +4,8 @@
URL dispatcher URL dispatcher
============== ==============
.. module:: django.core.urlresolvers
A clean, elegant URL scheme is an important detail in a high-quality Web A clean, elegant URL scheme is an important detail in a high-quality Web
application. Django lets you design URLs however you want, with no framework application. Django lets you design URLs however you want, with no framework
limitations. limitations.
@ -182,11 +184,13 @@ your URLconf. This gives your module access to these objects:
patterns patterns
-------- --------
.. function:: patterns(prefix, pattern_description, ...)
A function that takes a prefix, and an arbitrary number of URL patterns, and A function that takes a prefix, and an arbitrary number of URL patterns, and
returns a list of URL patterns in the format Django needs. returns a list of URL patterns in the format Django needs.
The first argument to ``patterns()`` is a string ``prefix``. See The first argument to ``patterns()`` is a string ``prefix``. See
"The view prefix" below. `The view prefix`_ below.
The remaining arguments should be tuples in this format:: The remaining arguments should be tuples in this format::
@ -222,6 +226,8 @@ url
.. versionadded:: 1.0 .. versionadded:: 1.0
.. function:: url(regex, view, kwargs=None, name=None, prefix='')
You can use the ``url()`` function, instead of a tuple, as an argument to You can use the ``url()`` function, instead of a tuple, as an argument to
``patterns()``. This is convenient if you want to specify a name without the ``patterns()``. This is convenient if you want to specify a name without the
optional extra arguments dictionary. For example:: optional extra arguments dictionary. For example::
@ -244,6 +250,8 @@ The ``prefix`` parameter has the same meaning as the first argument to
handler404 handler404
---------- ----------
.. data:: handler404
A string representing the full Python import path to the view that should be A string representing the full Python import path to the view that should be
called if none of the URL patterns match. called if none of the URL patterns match.
@ -253,6 +261,8 @@ value should suffice.
handler500 handler500
---------- ----------
.. data:: handler500
A string representing the full Python import path to the view that should be A string representing the full Python import path to the view that should be
called in case of server errors. Server errors happen when you have runtime called in case of server errors. Server errors happen when you have runtime
errors in view code. errors in view code.
@ -263,12 +273,14 @@ value should suffice.
include include
------- -------
.. function:: include(<module or pattern_list>)
A function that takes a full Python import path to another URLconf module that A function that takes a full Python import path to another URLconf module that
should be "included" in this place. should be "included" in this place.
.. versionadded:: 1.1 .. versionadded:: 1.1
:meth:``include`` also accepts as an argument an iterable that returns URL :func:`include` also accepts as an argument an iterable that returns URL
patterns. patterns.
See `Including other URLconfs`_ below. See `Including other URLconfs`_ below.
@ -421,7 +433,7 @@ This approach can be seen in use when you deploy an instance of the Django
Admin application. The Django Admin is deployed as instances of a Admin application. The Django Admin is deployed as instances of a
:class:`AdminSite`; each :class:`AdminSite` instance has an attribute :class:`AdminSite`; each :class:`AdminSite` instance has an attribute
``urls`` that returns the url patterns available to that instance. It is this ``urls`` that returns the url patterns available to that instance. It is this
attribute that you ``included()`` into your projects ``urlpatterns`` when you attribute that you ``include()`` into your projects ``urlpatterns`` when you
deploy the admin instance. deploy the admin instance.
.. _`Django Web site`: http://www.djangoproject.com/ .. _`Django Web site`: http://www.djangoproject.com/
@ -451,8 +463,8 @@ included URLconf, as expected.
Defining URL Namespaces Defining URL Namespaces
----------------------- -----------------------
When you need to deploying multiple instances of a single application, it can When you need to deploy multiple instances of a single application, it can be
be helpful to be able to differentiate between instances. This is especially helpful to be able to differentiate between instances. This is especially
important when using _`named URL patterns <naming-url-patterns>`, since important when using _`named URL patterns <naming-url-patterns>`, since
multiple instances of a single application will share named URLs. Namespaces multiple instances of a single application will share named URLs. Namespaces
provide a way to tell these named URLs apart. provide a way to tell these named URLs apart.
@ -466,15 +478,15 @@ A URL namespace comes in two parts, both of which are strings:
* An **instance namespace**. This identifies a specific instance of an * An **instance namespace**. This identifies a specific instance of an
application. Instance namespaces should be unique across your entire application. Instance namespaces should be unique across your entire
project. However, and instance namespace can be the same as the project. However, an instance namespace can be the same as the
application namespace. This is used to specify a default instance of an application namespace. This is used to specify a default instance of an
application. For example, the default Django Admin instance has an application. For example, the default Django Admin instance has an
instance namespace of ``admin``. instance namespace of ``admin``.
URL Namespaces can be specified in two ways. URL Namespaces can be specified in two ways.
Firstly, you can provide the applicaiton and instance namespace as arguments Firstly, you can provide the application and instance namespace as arguments
to the ``include()`` when you construct your URL patterns. For example,:: to ``include()`` when you construct your URL patterns. For example,::
(r'^help/', include('apps.help.urls', namespace='foo', app_name='bar')), (r'^help/', include('apps.help.urls', namespace='foo', app_name='bar')),
@ -494,7 +506,7 @@ instance namespace. For example, the ``urls`` attribute of Django's
an admin site, plus the name of the admin instance, and the application an admin site, plus the name of the admin instance, and the application
namespace ``admin``. namespace ``admin``.
Once you have defined namespace URLs, you can reverse them. For details on Once you have defined namespaced URLs, you can reverse them. For details on
reversing namespaced urls, see the documentation on :ref:`reversing namespaced reversing namespaced urls, see the documentation on :ref:`reversing namespaced
URLs <topics-http-reversing-url-namespaces>`. URLs <topics-http-reversing-url-namespaces>`.
@ -679,18 +691,18 @@ URL namespaces
.. versionadded:: 1.1 .. versionadded:: 1.1
Namespaced URLs are specified using the `:` operator. For example, the main index Namespaced URLs are specified using the ``:`` operator. For example, the main
page of the admin application is referenced using ``admin:index``. This indicates index page of the admin application is referenced using ``admin:index``. This
a namespace of ``admin``, and a named URL of ``index``. indicates a namespace of ``admin``, and a named URL of ``index``.
Namespaces can also be nested. The named URL ``foo:bar:whiz`` would look for Namespaces can also be nested. The named URL ``foo:bar:whiz`` would look for
a pattern named ``whiz`` in the namespace ``bar`` that is itself defined within a pattern named ``whiz`` in the namespace ``bar`` that is itself defined within
the top-level namespace ``foo``. the top-level namespace ``foo``.
When given a namespaced URL (e.g.,, `myapp:index`) to resolve, Django splits When given a namespaced URL (e.g. ``myapp:index``) to resolve, Django splits
the fully qualified name into parts, and then tries the following lookup: the fully qualified name into parts, and then tries the following lookup:
1. Django then looks for a matching application namespace (in this 1. First, Django looks for a matching application namespace (in this
example, ``myapp``). This will yield a list of instances of that example, ``myapp``). This will yield a list of instances of that
application. application.
@ -702,15 +714,15 @@ the fully qualified name into parts, and then tries the following lookup:
template. template.
The current application can also be specified manually as an argument The current application can also be specified manually as an argument
to the :method:``reverse()`` function. to the :func:`reverse()` function.
3. If there is no current application. Django looks for a default 3. If there is no current application. Django looks for a default
application instance. The default application instance is the instance application instance. The default application instance is the instance
that has an instance namespace matching the application namespace (in that has an instance namespace matching the application namespace (in
this example, an instance of the ``myapp`` called ``myapp``) this example, an instance of the ``myapp`` called ``myapp``).
4. If there is no default application instance, Django will pick the first 4. If there is no default application instance, Django will pick the first
deployed instance of the application, whatever it's instance name may be. deployed instance of the application, whatever its instance name may be.
5. If the provided namespace doesn't match an application namespace in 5. If the provided namespace doesn't match an application namespace in
step 2, Django will attempt a direct lookup of the namespace as an step 2, Django will attempt a direct lookup of the namespace as an
@ -762,7 +774,6 @@ If you need to use something similar to the :ttag:`url` template tag in
your code, Django provides the following method (in the your code, Django provides the following method (in the
``django.core.urlresolvers`` module): ``django.core.urlresolvers`` module):
.. currentmodule:: django.core.urlresolvers
.. function:: reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None) .. function:: reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None)
``viewname`` is either the function name (either a function reference, or the ``viewname`` is either the function name (either a function reference, or the
@ -812,7 +823,6 @@ resolve()
The :func:`django.core.urlresolvers.resolve` function can be used for resolving The :func:`django.core.urlresolvers.resolve` function can be used for resolving
URL paths to the corresponding view functions. It has the following signature: URL paths to the corresponding view functions. It has the following signature:
.. currentmodule:: django.core.urlresolvers
.. function:: resolve(path, urlconf=None) .. function:: resolve(path, urlconf=None)
``path`` is the URL path you want to resolve. As with ``reverse()`` above, you ``path`` is the URL path you want to resolve. As with ``reverse()`` above, you