diff --git a/README.md b/README.md index 633d07d4cb9..16436212960 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Django Girls Tutorial +# Django Girls Tutorial [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/DjangoGirls/tutorial?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) > This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 diff --git a/en/deploy/README.md b/en/deploy/README.md index cb3b4a5f961..4755ed26833 100644 --- a/en/deploy/README.md +++ b/en/deploy/README.md @@ -129,10 +129,15 @@ Create a file named `.gitignore` in your `djangogirls` directory with the follow staticfiles local_settings.py db.sqlite3 + *.py[co] and save it. The dot on the beginning of the file name is important! As you can see, we're now telling Heroku to ignore `local_settings.py` and don't download it, so it's only available on your computer (locally). -Next, we’ll create a new git repository and save our changes. Go to your console and run these commands: +Next, we’ll create a new git repository and save our changes. + +> __Note__: Check out your current working directory with a `pwd` command before initializing the repository. You should be in the `djangogirls` folder. + +Go to your console and run these commands: $ git init Initialized empty Git repository in ~/djangogirls/.git/ @@ -141,6 +146,28 @@ Next, we’ll create a new git repository and save our changes. Go to your conso Initializing the git repository is something we only need to do once per project. +It's a good idea to use a `git status` command before `git add` or whenever you find yourself unsure of what will be done, to prevent any surprises from happening (e.g. wrong files will be added or commited). The `git status` command returns information about any untracked/modifed/staged files, branch status and much more. The output should be similar to: + + $ git status + On branch master + + Initial commit + + Untracked files: + (use "git add ..." to include in what will be committed) + + .gitignore + Procfile + mysite/__init__.py + mysite/settings.py + mysite/urls.py + mysite/wsgi.py + manage.py + requirements.txt + runtime.txt + + nothing added to commit but untracked files present (use "git add" to track) + And finally we save our changes. Go to your console and run these commands: $ git add -A . diff --git a/en/django_admin/README.md b/en/django_admin/README.md index 5b394dadba5..14aa0c6d3b3 100644 --- a/en/django_admin/README.md +++ b/en/django_admin/README.md @@ -34,7 +34,7 @@ Make sure that at least two or three posts (but not all) have the publish date s ![Django admin](images/edit_post3.png) -If you want to know more about Django admin, you should check Django's documentation: https://docs.djangoproject.com/en/1.7/ref/contrib/admin/ +If you want to know more about Django admin, you should check Django's documentation: https://docs.djangoproject.com/en/1.8/ref/contrib/admin/ This is probably a good moment to grab a coffee (or tea) or something to eat to re-energise yourself. You created your first Django model - you deserve a little timeout! diff --git a/en/django_forms/README.md b/en/django_forms/README.md index 922cdbe2019..3085f865da4 100644 --- a/en/django_forms/README.md +++ b/en/django_forms/README.md @@ -82,14 +82,14 @@ We open `blog/urls.py` and add a line: And the final code will look like this: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from . import views - urlpatterns = patterns('', + urlpatterns = [ url(r'^$', views.post_list), url(r'^post/(?P[0-9]+)/$', views.post_detail), url(r'^post/new/$', views.post_new, name='post_new'), - ) + ] After refreshing the site, we see an `AttributeError`, since we don't have `post_new` view implemented. Let's add it right now. @@ -282,7 +282,7 @@ Feel free to change the title or the text and save changes! Congratulations! Your application is getting more and more complete! -If you need more information about Django forms you should read the documentation: https://docs.djangoproject.com/en/1.7/topics/forms/ +If you need more information about Django forms you should read the documentation: https://docs.djangoproject.com/en/1.8/topics/forms/ ## One more thing: deploy time! diff --git a/en/django_installation/README.md b/en/django_installation/README.md index a413ca6c51d..40df42e4206 100644 --- a/en/django_installation/README.md +++ b/en/django_installation/README.md @@ -31,7 +31,7 @@ To create a new `virtualenv`, you need to open the console (we told you about th C:\Users\Name\djangogirls> C:\Python34\python -m venv myvenv -where `C:\Python34\python` is the directory in which you previously installed Python and `myvenv` is the name of your `virtualenv`. You can use any other name, but stick to lowercase and use no spaces. It is also good idea to keep the name short - you'll be referencing it a lot! +where `C:\Python34\python` is the directory in which you previously installed Python and `myvenv` is the name of your `virtualenv`. You can use any other name, but stick to lowercase and use no spaces, accents or special characters. It is also good idea to keep the name short - you'll be referencing it a lot! ### Linux and OS X @@ -88,16 +88,16 @@ OK, we have all important dependencies in place. We can finally install Django! ## Installing Django -Now that you have your `virtualenv` started, you can install Django using `pip`. In the console, run `pip install django==1.7.7` (note that we use a double equal sign: `==`). +Now that you have your `virtualenv` started, you can install Django using `pip`. In the console, run `pip install django==1.8` (note that we use a double equal sign: `==`). - (myvenv) ~$ pip install django==1.7.7 - Downloading/unpacking django==1.7.7 + (myvenv) ~$ pip install django==1.8 + Downloading/unpacking django==1.8 Installing collected packages: django Successfully installed django Cleaning up... on Windows -> If you get an error when calling pip on Windows platform please check if your project pathname contains spaces (i.e. `C:\Users\User Name\djangogirls`). If it does please consider moving it to another place without spaces (suggestion is: `C:\djangogirls`). After the move please try the above command again. +> If you get an error when calling pip on Windows platform please check if your project pathname contains spaces, accents or special characters (i.e. `C:\Users\User Name\djangogirls`). If it does please consider moving it to another place without spaces, accents or special characters (suggestion is: `C:\djangogirls`). After the move please try the above command again. on Linux > If you get an error when calling pip on Ubuntu 12.04 please run `python -m pip install -U --force-reinstall pip` to fix the pip installation in the virtualenv. diff --git a/en/django_models/README.md b/en/django_models/README.md index 26d36ab5e04..2f64e67ab1f 100644 --- a/en/django_models/README.md +++ b/en/django_models/README.md @@ -137,7 +137,7 @@ Now we define properties we were talking about: `title`, `text`, `created_date`, - `models.DateTimeField` - this is a date and time. - `models.ForeignKey` - this is a link to another model. -We will not explain every bit of code here, since it would take too much time. You should take a look at Django's documentation, if you want to know more about Model fields and how to define things other than those described above (https://docs.djangoproject.com/en/1.7/ref/models/fields/#field-types). +We will not explain every bit of code here, since it would take too much time. You should take a look at Django's documentation, if you want to know more about Model fields and how to define things other than those described above (https://docs.djangoproject.com/en/1.8/ref/models/fields/#field-types). What about `def publish(self):`? It is exactly our `publish` method we were talking about before. `def` means that this is a function/method. `publish` is the name of the method. You can change it, if you want. The rule is that we use lowercase and underscores instead of whitespaces (i.e. if you want to have a method that calculates average price you could call it `calculate_average_price`). diff --git a/en/django_urls/README.md b/en/django_urls/README.md index 84050e25146..3d998a5a38c 100644 --- a/en/django_urls/README.md +++ b/en/django_urls/README.md @@ -14,16 +14,16 @@ Every page on the Internet needs its own URL. This way your application knows wh Let's open up the `mysite/urls.py` file and see what it looks like: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from django.contrib import admin - urlpatterns = patterns('', + urlpatterns = [ # Examples: # url(r'^$', 'mysite.views.home', name='home'), # url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)), - ) + ] As you can see, Django already put something here for us. @@ -52,13 +52,13 @@ Go ahead, delete the commented lines (lines starting with `#`) and add a line th Your `mysite/urls.py` file should now look like this: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from django.contrib import admin - urlpatterns = patterns('', + urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'', include('blog.urls')), - ) + ] Django will now redirect everything that comes into 'http://127.0.0.1:8000/' to `blog.urls` and look for further instructions there. @@ -66,16 +66,16 @@ Django will now redirect everything that comes into 'http://127.0.0.1:8000/' to Create a new `blog/urls.py` empty file. All right! Add these two first lines: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from . import views Here we're just importing Django's methods and all of our `views` from `blog` application (we don't have any yet, but we will get to that in a minute!) After that, we can add our first URL pattern: - urlpatterns = patterns('', + urlpatterns = [ url(r'^$', views.post_list), - ) + ] As you can see, we're now assigning a `view` called `post_list` to `^$` URL. But what does `^$` mean? It's a regex magic :) Let's break it down: - `^` in regex means "the beginning"; from this sign we can start looking for our pattern @@ -91,4 +91,4 @@ There is no "It works" anymore, huh? Don't worry, it's just an error page, nothi You can read that there is __no attribute 'post_list'__. Is *post_list* reminding you of anything? This is how we called our view! This means that everything is in place, we just didn't create our *view* yet. No worries, we will get there. -> If you want to know more about Django URLconfs, look at the official documentation: https://docs.djangoproject.com/en/1.7/topics/http/urls/ +> If you want to know more about Django URLconfs, look at the official documentation: https://docs.djangoproject.com/en/1.8/topics/http/urls/ diff --git a/en/django_views/README.md b/en/django_views/README.md index 1f22d518147..e6b67f0c05b 100644 --- a/en/django_views/README.md +++ b/en/django_views/README.md @@ -30,4 +30,4 @@ Another error! Read what's going on now: This one is easy: *TemplateDoesNotExist*. Let's fix this bug and create a template in the next chapter! -> Learn more about Django views by reading the official documentation: https://docs.djangoproject.com/en/1.7/topics/http/views/ +> Learn more about Django views by reading the official documentation: https://docs.djangoproject.com/en/1.8/topics/http/views/ diff --git a/en/dynamic_data_in_templates/README.md b/en/dynamic_data_in_templates/README.md index 25a1df0befe..b131dfaecc5 100644 --- a/en/dynamic_data_in_templates/README.md +++ b/en/dynamic_data_in_templates/README.md @@ -58,7 +58,7 @@ So finally our `blog/views.py` file should look like this: That's it! Time to go back to our template and display this QuerySet! -If you want to read a little bit more about QuerySets in Django you should look here: https://docs.djangoproject.com/en/1.7/ref/models/querysets/ +If you want to read a little bit more about QuerySets in Django you should look here: https://docs.djangoproject.com/en/1.8/ref/models/querysets/ diff --git a/en/extend_your_application/README.md b/en/extend_your_application/README.md index ec6b587adda..8379d5d640c 100644 --- a/en/extend_your_application/README.md +++ b/en/extend_your_application/README.md @@ -44,13 +44,13 @@ Let's create a URL in `urls.py` for our `post_detail` *view*! We want to create a URL to point Django to a *view* called `post_detail`, that will show an entire blog post. Add the line `url(r'^post/(?P[0-9]+)/$', views.post_detail),` to the `blog/urls.py` file. It should look like this: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from . import views - urlpatterns = patterns('', + urlpatterns = [ url(r'^$', views.post_list), url(r'^post/(?P[0-9]+)/$', views.post_detail), - ) + ] That one looks scary, but no worries - we will explain it for you: - it starts with `^` again -- "the beginning" diff --git a/en/html/README.md b/en/html/README.md index 654ea41e40b..d4457e74778 100644 --- a/en/html/README.md +++ b/en/html/README.md @@ -10,7 +10,7 @@ A Django template's format is described in a language called HTML (that's the HT HTML is a simple code that is interpreted by your web browser - such as Chrome, Firefox or Safari - to display a webpage for the user. -HTML stands for "HyperText Markup Language." __HyperText__ means it's a type of text that supports hyperlinks between pages. __Markup__ means we have taken a document and marked it up with code to tell something (in this case, a browser) how to interpret the page. HTML code is built with __tags__, each one starting with `<` and ending with `>`. These tags markup __elements__. +HTML stands for "HyperText Markup Language". __HyperText__ means it's a type of text that supports hyperlinks between pages. __Markup__ means we have taken a document and marked it up with code to tell something (in this case, a browser) how to interpret the page. HTML code is built with __tags__, each one starting with `<` and ending with `>`. These tags markup __elements__. ## Your first template! @@ -28,7 +28,7 @@ And now create a `post_list.html` file (just leave it blank for now) inside the See how your website looks now: http://127.0.0.1:8000/ -> If you still have an error `TemplateDoesNotExists`, try to restart your server. Go into command line, stop the reserver by pressing Ctrl+C (Control and C buttons together) and start it again by running a `python manage.py runserver` command. +> If you still have an error `TemplateDoesNotExists`, try to restart your server. Go into command line, stop the server by pressing Ctrl+C (Control and C buttons together) and start it again by running a `python manage.py runserver` command. ![Figure 11.1](images/step1.png) @@ -125,7 +125,7 @@ Here's an example of a full template: We've created three `div` sections here. -- The first `div` element contains the title of our blogpost - it's a heading and a link +- The first `div` element contains the title of our blog - it's a heading and a link - Another two `div` elements contain our blogposts with a published date, `h2` with a post title that is clickable and two `p`s (paragraph) of text, one for the date and one for our blogpost. It gives us this effect: @@ -134,7 +134,7 @@ It gives us this effect: Yaaay! But so far, our template only ever displays exactly __the same information__ - whereas earlier we were talking about templates as allowing us to display __different__ information in the __same format__. -What we want really want to do is display real posts added in our Django admin - and that's where we're going next. +What we really want to do is display real posts added in our Django admin - and that's where we're going next. ## One more thing diff --git a/en/whats_next/README.md b/en/whats_next/README.md index 7fd1a3b0010..7e64be31c91 100644 --- a/en/whats_next/README.md +++ b/en/whats_next/README.md @@ -15,7 +15,7 @@ After that make sure to: Yes! First, go ahead and try our other book, called [Django Girls Tutorial: Extensions](http://djangogirls.gitbooks.io/django-girls-tutorial-extensions/). Later on, you can try recources listed below. They're all very recommended! -- [Django's official tutorial](https://docs.djangoproject.com/en/1.7/intro/tutorial01/) +- [Django's official tutorial](https://docs.djangoproject.com/en/1.8/intro/tutorial01/) - [New Coder tutorials](http://newcoder.io/tutorials/) - [Code Academy Python course](http://www.codecademy.com/en/tracks/python) - [Code Academy HTML & CSS course](http://www.codecademy.com/tracks/web) diff --git a/es/deploy/README.md b/es/deploy/README.md index d6c1234d88a..279b82930cd 100755 --- a/es/deploy/README.md +++ b/es/deploy/README.md @@ -140,7 +140,7 @@ Crea un fichero llamado `.gitignore` en tu directorio `djangogirls` con el sigui staticfiles local_settings.py db.sqlite3 - + *.py[co] y guarda los cambios. El punto al principio del nombre del fichero es importante! Como puedes ver, ahora le estamos diciendo a Heroku que ignore el fichero `local_settings.py` y no lo descargue, para que esté disponible solamente en tu ordenador (en local). @@ -234,4 +234,4 @@ El error que veías era debido a que cuando desplegamos en Heroku creamos una nu $ heroku run python manage.py createsuperuser -Ahora deberías poder acceder a tu sitio web desde el navegador! Felicidades :)! \ No newline at end of file +Ahora deberías poder acceder a tu sitio web desde el navegador! Felicidades :)! diff --git a/es/django_admin/README.md b/es/django_admin/README.md index b4211bd63cc..427b328f345 100755 --- a/es/django_admin/README.md +++ b/es/django_admin/README.md @@ -47,6 +47,6 @@ Asegúrate que al menos dos o tres entradas (pero no todas) tengan la fecha de p [3]: images/edit_post3.png -Sí quieres sabes más sobre Django admin, deberías revisar la documentación de Django: https://docs.djangoproject.com/en/1.7/ref/contrib/admin/ +Sí quieres sabes más sobre Django admin, deberías revisar la documentación de Django: https://docs.djangoproject.com/en/1.8/ref/contrib/admin/ -Probablemente sea un buen momento para tomar un café (o té) y comer algo dulce. Haz creado tu primer modelo Django - te mereces un regalito! \ No newline at end of file +Probablemente sea un buen momento para tomar un café (o té) y comer algo dulce. Haz creado tu primer modelo Django - te mereces un regalito! diff --git a/es/django_forms/README.md b/es/django_forms/README.md index 66527b22950..53d28486476 100755 --- a/es/django_forms/README.md +++ b/es/django_forms/README.md @@ -88,14 +88,14 @@ Abrimos el `blog/urls.py` y añadimos una línea: Y el código final tendrá este aspecto: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from . import views - urlpatterns = patterns('', + urlpatterns = [ url(r'^$', views.post_list), url(r'^post/(?P[0-9]+)/$', views.post_detail), url(r'^post/new/$', views.post_new, name='post_new'), - ) + ] Después de actualizar el sitio, veremos un `AttributeError`, puesto que no tenemos la vista `post_new` implementado. Vamos a añadir ahora. @@ -315,7 +315,7 @@ Al dar click ahí, debes ver el formulario con nuestro post del blog: ¡Felicitaciones.Tu aplicación está cada vez más completa! -Si necesitas más información sobre los formularios de Django, debes leer la documentación: https://docs.djangoproject.com/en/1.7/topics/forms/ +Si necesitas más información sobre los formularios de Django, debes leer la documentación: https://docs.djangoproject.com/en/1.8/topics/forms/ ## Una cosa más: ¡Tiempo de implementación! @@ -331,4 +331,4 @@ Sería bueno ver si tu sitio sigue funcionando en Heroku, ¿no? Intentemos imple $ git push heroku master -¡Y eso debería ser todo! Felicidades :) \ No newline at end of file +¡Y eso debería ser todo! Felicidades :) diff --git a/es/django_installation/README.md b/es/django_installation/README.md index 85b5705d85f..5add1f3f0dc 100755 --- a/es/django_installation/README.md +++ b/es/django_installation/README.md @@ -93,10 +93,10 @@ Tenemos todas las dependencias importantes en su lugar. ¡Finalmente podemos ins ## Instalar Django -Ahora que tienes tu `virtualenv` iniciado, puedes instalar Django usando `pip`. En la consola, ejecuta `pip install django == 1.7.1` (fíjate que utilizamos un doble signo igual): `==`). +Ahora que tienes tu `virtualenv` iniciado, puedes instalar Django usando `pip`. En la consola, ejecuta `pip install django == 1.8` (fíjate que utilizamos un doble signo igual): `==`). - (myvenv) ~$ pip install django==1.7.1 - Downloading/unpacking django==1.7.1 + (myvenv) ~$ pip install django==1.8 + Downloading/unpacking django==1.8 Installing collected packages: django Successfully installed django Cleaning up... @@ -110,4 +110,4 @@ en Linux > Si obtienes un error al correr pip en Ubuntu 12.04 ejecuta `python -m pip install- U - force-resintall pip` para arreglar la instalación de pip en el virtualenv. -¡Eso es todo. Ahora estás listo (por fin) para crear una aplicación Django! Pero para hacer eso, necesitas un buen programa en el cual escribir código... \ No newline at end of file +¡Eso es todo. Ahora estás listo (por fin) para crear una aplicación Django! Pero para hacer eso, necesitas un buen programa en el cual escribir código... diff --git a/es/django_models/README.md b/es/django_models/README.md index b6efa40d3fc..42f78dbb5ce 100755 --- a/es/django_models/README.md +++ b/es/django_models/README.md @@ -143,7 +143,7 @@ Ahora definimos las propiedades que hablábamos: `title`, `text`, `created_date` * `models.DateTimeField` - esta es la fecha y hora. * `modelos.ForeignKey`-este es una relación a otro modelo. -No vamos a explicar cada pedacito de código, ya que nos tomaría demasiado tiempo. Debes echar un vistazo a la documentación de Django. Si quieres saber más sobre los campos de Modelos y cómo definir cosas diferentes a las descritas anteriormente (https://docs.djangoproject.com/en/1.7/ref/models/fields/#field-types). +No vamos a explicar cada pedacito de código, ya que nos tomaría demasiado tiempo. Debes echar un vistazo a la documentación de Django. Si quieres saber más sobre los campos de Modelos y cómo definir cosas diferentes a las descritas anteriormente (https://docs.djangoproject.com/en/1.8/ref/models/fields/#field-types). ¿Y qué sobre `def publish(self):`? Es exactamenteel método `publish` del que hablábamos antes. `def` significa que se trata de una función o método. `publish` es el nombre del método. Puedes cambiarlo, si quieres. La regla es que usamos minúscula y guiones bajos en lugar de espacios (es decir, si quieres tener un método que calcule el precio medio, este podría llamarse `calculate_average_price`). @@ -170,4 +170,4 @@ Django nos prepara un archivo de migración que tenemos que aplicar ahora a nues Applying blog.0001_initial... OK -¡ Hurra! Nuestro modelo de Post está ahora en nuestra base de datos, sería bueno verlo, ¿no? Dirígete al siguiente capítulo para ver cómo luce tu Post! \ No newline at end of file +¡ Hurra! Nuestro modelo de Post está ahora en nuestra base de datos, sería bueno verlo, ¿no? Dirígete al siguiente capítulo para ver cómo luce tu Post! diff --git a/es/django_urls/README.md b/es/django_urls/README.md index aa2399165f6..0fb2bbd1181 100755 --- a/es/django_urls/README.md +++ b/es/django_urls/README.md @@ -16,16 +16,16 @@ Cada página en la Internet necesita su propia dirección URL. De esta manera su Vamos a abrir el archivo `mysite/urls.py` y ver lo que aparece: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from django.contrib import admin - urlpatterns = patterns('', + urlpatterns = [ # Examples: # url(r'^$', 'mysite.views.home', name='home'), # url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)), - ) + ] Como puedes ver, Django ya puso algo aquí para nosotros. @@ -55,13 +55,13 @@ Adelante, eliminar las líneas comentadas (líneas que comienzan con `#`) y aña El archivo `mysite/urls.py` ahora debe verse así: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from django.contrib import admin - urlpatterns = patterns('', + urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'', include('blog.urls')), - ) + ] Django redirigirá ahora todo lo que entre en `http://127.0.0.1:8000 /` a `blog.urls` y esperara para más instrucciones. @@ -70,7 +70,7 @@ Django redirigirá ahora todo lo que entre en `http://127.0.0.1:8000 /` a `blog. Cree un nuevo archivo vacío `blog/urls.py`. ¡Muy bien! Añade estas dos primeras líneas: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from . import views @@ -78,9 +78,9 @@ Aquí nosotros sólo importaremos métodos de Django y todas nuestras `vistas` d Después de eso, podemos agregar nuestro primer patrón de URL: - urlpatterns = patterns('', + urlpatterns = [ url(r'^$', views.post_list), - ) + ] Como puedes ver, estamos asignando una `vista` denominada `post_list` a la `^ $` URL. Pero, ¿qué hace`^ $`? Es una magia regex :) Lo desglosemos:-`^` en regex significa "el principio"; de este signo podemos empezar buscando nuestro patrón - `$` si coincide sólo "el fin" de la cadena, lo que significa que vamos a terminar buscando nuestro patrón aquí @@ -97,4 +97,4 @@ No "funciona", ¿eh? No te preocupes, es sólo una página de error, nada que te Se puede leer que no existe ningún atributo **'post_list'**. *¿Post_list* lo recuerdas? Esto es lo que llamamos nuestro punto de vista! Esto significa que todo esté en su lugar, simplemente no creamos nuestra *view* todavía. No te preocupes, llegaremos ahí. -> Si quieres saber más sobre Django URLconfs, mira la documentación oficial: https://docs.djangoproject.com/en/1.7/topics/http/urls/ \ No newline at end of file +> Si quieres saber más sobre Django URLconfs, mira la documentación oficial: https://docs.djangoproject.com/en/1.8/topics/http/urls/ diff --git a/es/django_views/README.md b/es/django_views/README.md index cf1fc672069..6f38ab26287 100755 --- a/es/django_views/README.md +++ b/es/django_views/README.md @@ -34,4 +34,4 @@ Otro error! Lee lo que está pasando ahora: Esto es fácil: *TemplateDoesNotExist*. Vamos a arreglar este error, creando una plantilla en el siguiente capítulo! -> Aprenda más acerca de las vistas de Django mediante la lectura de la documentación oficial: https://docs.djangoproject.com/en/1.7/topics/http/views/ \ No newline at end of file +> Aprenda más acerca de las vistas de Django mediante la lectura de la documentación oficial: https://docs.djangoproject.com/en/1.8/topics/http/views/ diff --git a/es/dynamic_data_in_templates/README.md b/es/dynamic_data_in_templates/README.md index 4fdb39bde50..bd0e7026cc7 100755 --- a/es/dynamic_data_in_templates/README.md +++ b/es/dynamic_data_in_templates/README.md @@ -63,4 +63,4 @@ Finalmente nuestro archivo `blog/views.py` debe verse así: ¡Terminamos! Ahora regresemos a nuestra plantilla y mostremos este QuerySet. -Si quieres leer un poco más acerca de QuerySets en Django, puedes darle un vistazo a: https://docs.djangoproject.com/en/1.7/ref/models/querysets/ \ No newline at end of file +Si quieres leer un poco más acerca de QuerySets en Django, puedes darle un vistazo a: https://docs.djangoproject.com/en/1.8/ref/models/querysets/ diff --git a/es/extend_your_application/README.md b/es/extend_your_application/README.md index 18c6a6d1e5e..f29ff8a9e27 100755 --- a/es/extend_your_application/README.md +++ b/es/extend_your_application/README.md @@ -53,13 +53,13 @@ Vamos a crear una dirección URL en `urls.py` para nuestro `post_detail` *view*! Queremos crear una dirección URL de Django a una *view* denominada `post_detail`, que mostrará una entrada del blog. ¿Agrega la línea `url (r'^ poste / (?P < pk >[0-9] +) / $', views.post_detail),` en el archivo `blog/urls.py`. Debe tener este aspecto: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from . import views - urlpatterns = patterns('', + urlpatterns = [ url(r'^$', views.post_list), url(r'^post/(?P[0-9]+)/$', views.post_detail), - ) + ] Da miedo, pero no te preocupes - lo explicaremos para ti: - comienza con `^` otra vez, "el principio" - `post /` sólo significa que después del comienzo, la dirección URL debe contener la palabra **post** y **/**. Hasta ahora, bien. - `(?P < pk >[0-9] +)`-esta parte es más complicada. Significa que Django llevará todo lo que coloques aquí y lo transferirá a una vista como una variable llamada `pk`. `[0-9]` también nos dice que sólo puede ser un número, no es una carta (entre 0 y 9). `+` significa que tiene que haber uno o más dígitos. Por algo como `http://127.0.0.1:8000/post / /` no es válido, pero `1234567890/post/http://127.0.0.1:8000/` es perfectamente aceptable! -`/` - entonces necesitamos **/** de nuevo - `$` - "the end"! @@ -178,4 +178,4 @@ Sería bueno ver si tu sitio sigue funcionando en Heroku, ¿no? Intentemos imple $ git push heroku master -¡Y eso debería ser todo! Felicidades :) \ No newline at end of file +¡Y eso debería ser todo! Felicidades :) diff --git a/es/whats_next/README.md b/es/whats_next/README.md index 121d072be84..838263e8159 100755 --- a/es/whats_next/README.md +++ b/es/whats_next/README.md @@ -30,7 +30,7 @@ Más adelante, puedes intentar los recursos enumerados a continuación. Todos mu - [Getting Started With Django video lessons][10] - [Two Scoops of Django: Best Practices for Django book][11] - [4]: https://docs.djangoproject.com/en/1.7/intro/tutorial01/ + [4]: https://docs.djangoproject.com/en/1.8/intro/tutorial01/ [5]: http://newcoder.io/tutorials/ [6]: http://www.codecademy.com/en/tracks/python [7]: http://www.codecademy.com/tracks/web diff --git a/pl/deploy/README.md b/pl/deploy/README.md index 5d447600c94..5e815b24831 100755 --- a/pl/deploy/README.md +++ b/pl/deploy/README.md @@ -142,7 +142,7 @@ Utwórz w katalogu `djangogirls` plik `.gitignore` i wstaw w nim następującą staticfiles local_settings.py db.sqlite3 - + *.py[co] a następnie zapisz go. Kropka na początku nazwy pliku jest ważna! Jak widzisz, nakazujemy Heroku ignorować plik `local_settings.py` i nie pobierać go, dzięki czemu pozostaje on dostępny tylko i wyłącznie na Twoim komputerze (lokalnie). diff --git a/pl/django_admin/README.md b/pl/django_admin/README.md index c18a5c5db8b..c90e8002809 100755 --- a/pl/django_admin/README.md +++ b/pl/django_admin/README.md @@ -36,6 +36,6 @@ Postaraj się, aby przynajmniej dwa - trzy wpisy (ale nie wszystkie!) miały ust ![Administracja Django (admin)](images/edit_post3.png) -Jeśli chcesz dowiedzieć się więcej o panelu admina Django, powinnaś sprawdzić dokumentację Django: https://docs.djangoproject.com/en/1.7/ref/contrib/admin/ +Jeśli chcesz dowiedzieć się więcej o panelu admina Django, powinnaś sprawdzić dokumentację Django: https://docs.djangoproject.com/en/1.8/ref/contrib/admin/ To zdecydowanie dobra okazja na filiżankę kawy (lub herbaty) i schrupanie czegoś słodkiego. Stworzyłaś swój pierwszy model w Django - zasługujesz na małą nagrodę! diff --git a/pl/django_forms/README.md b/pl/django_forms/README.md index 648354c39b6..8d323f603aa 100755 --- a/pl/django_forms/README.md +++ b/pl/django_forms/README.md @@ -87,14 +87,14 @@ Otwieramy plik `blog/urls.py` i dodajemy wiersz: Ostatecznie kod będzie wyglądał tak: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from . import views - urlpatterns = patterns('', + urlpatterns = [ url(r'^$', views.post_list), url(r'^post/(?P[0-9]+)/$', views.post_detail), url(r'^post/new/$', views.post_new, name='post_new'), - ) + ] Po odświeżeniu strony zobaczymy błąd `AttributeError`, ponieważ nie mamy jeszcze zaimplementowanego widoku `post_new`. Dodajmy go teraz. @@ -302,7 +302,7 @@ Zmodyfikuj jego tytuł lub treść wedle uznania, a następnie zapisz zmiany! Gratulacje! Twoja aplikacja staje się coraz bardziej kompletna! -Jeżeli potrzebujesz więcej informacji o formularzach Django, zajrzyj do dokumentacji: https://docs.djangoproject.com/en/1.7/topics/forms/ +Jeżeli potrzebujesz więcej informacji o formularzach Django, zajrzyj do dokumentacji: https://docs.djangoproject.com/en/1.8/topics/forms/ ## Jeszcze jedno: czas na wdrożenie! diff --git a/pl/django_installation/README.md b/pl/django_installation/README.md index fe2fe6a09ee..7d9eb7c5fce 100755 --- a/pl/django_installation/README.md +++ b/pl/django_installation/README.md @@ -93,10 +93,10 @@ W trakcie pracy ze środowiskiem wirtualnym `python` będzie automatycznie odnos ## Instalowanie Django -Teraz, gdy Twój `virtualenv` jest już uruchomiony, możesz zainstalować django za pomocą narzędzia `pip`. W konsoli uruchom polecenie `pip install django==1.7.7` (zwróć uwagę, że używamy podwójnego znaku równości: `==`). +Teraz, gdy Twój `virtualenv` jest już uruchomiony, możesz zainstalować django za pomocą narzędzia `pip`. W konsoli uruchom polecenie `pip install django==1.8` (zwróć uwagę, że używamy podwójnego znaku równości: `==`). - (myvenv) ~$ pip install django==1.7.7 - Downloading/unpacking django==1.7.7 + (myvenv) ~$ pip install django==1.8 + Downloading/unpacking django==1.8 Installing collected packages: django Successfully installed django Cleaning up... diff --git a/pl/django_models/README.md b/pl/django_models/README.md index 1071952e970..92ae70a4dcf 100755 --- a/pl/django_models/README.md +++ b/pl/django_models/README.md @@ -143,7 +143,7 @@ Teraz dodamy właściwości, o których wspomniałyśmy już wcześniej: `title` * `models.DateTimeField` - to jest data i godzina. * `models.ForeignKey` - to jest odnośnik do innego modelu. -Nie będziemy tutaj wyjaśniać drobiazgowo każdego elementu kodu, gdyż zajęłoby to zbyt dużo czasu. Powinnaś zajrzeć do dokumentacji Django, jeżeli chcesz dowiedzieć się więcej o polach modelu oraz jak definiować typy inne niż opisywane powyżej (https://docs.djangoproject.com/en/1.7/ref/models/fields/#field-types). +Nie będziemy tutaj wyjaśniać drobiazgowo każdego elementu kodu, gdyż zajęłoby to zbyt dużo czasu. Powinnaś zajrzeć do dokumentacji Django, jeżeli chcesz dowiedzieć się więcej o polach modelu oraz jak definiować typy inne niż opisywane powyżej (https://docs.djangoproject.com/en/1.8/ref/models/fields/#field-types). A co to takiego `def publish(self):`? To nic innego, jak nasza metoda publikująca wpis, o której wspominałyśmy wcześniej. Słowo `def` oznacza, że mamy do czynienia z funkcją/metodą. Z kolei `publish` to nazwa metody. Możesz użyć innej, jeśli chcesz. Zasadą jest, że używamy małych liter oraz znaków podkreślenia zamiast spacji (czyli gdybyś chciała dodać metodę, która oblicza średnią cen, mogłabyś ją nazwać `calculate_average_price` lub <0>oblicz_srednia_cene). diff --git a/pl/django_urls/README.md b/pl/django_urls/README.md index b8dd38c3a4b..b8f2d33d8c8 100755 --- a/pl/django_urls/README.md +++ b/pl/django_urls/README.md @@ -14,16 +14,16 @@ Każda strona w internecie potrzebuje własnego adresu URL. W ten sposób aplika Otwórzmy plik `mysite/urls.py` i przyjrzyjmy się jego treści: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from django.contrib import admin - urlpatterns = patterns('', + urlpatterns = [ # Examples: # url(r'^$', 'mysite.views.home', name='home'), # url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)), - ) + ] Jak zauważyłaś, Django coś nam już tu umieścił. @@ -53,13 +53,13 @@ Zależy nam również, aby zachować porządek w pliku `mysite/urls.py`, dlatego Twój plik `mysite/urls.py` powinien teraz wyglądać tak: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from django.contrib import admin - urlpatterns = patterns('', + urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'', include('blog.urls')), - ) + ] Od tej pory Django przekieruje wszystkie reguły z adresu http://127.0.0.1:8000/ do `blog.urls` i tam będzie szukał dalszych wskazówek. @@ -68,7 +68,7 @@ Od tej pory Django przekieruje wszystkie reguły z adresu http://127.0.0.1:8000/ Stwórz nowy pusty plik `blog/urls.py`. W porządku! Teraz dodaj dwie pierwsze linijki: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from . import views @@ -76,9 +76,9 @@ Tutaj po prostu importujemy metody Django oraz wszystkie widoki (`views`) z nasz Potem możemy dodać nasz pierwszy wzorzec adresu URL: - urlpatterns = patterns('', + urlpatterns = [ url(r'^$', views.post_list), - ) + ] Jak widzisz, przyporządkowujemy widok (`view`) o nazwie `post_list` do adresu `^$`. A co oznacza `^$`? Tutaj kłania się magia wyrażeń regularnych. :) Rozłóżmy to na cześci: - `^` w wyrażeniu oznacza "początek"; od tego znaku rozpoczynamy poszukiwanie naszego wzorca - `$` oznacza "koniec" ciągu znaków, czyli tutaj kończymy poszukiwanie naszego wzorca @@ -93,4 +93,4 @@ Gdzieś zniknęło "It works", zgadza się? Spokojnie, to tylko strona błędu, Jest napisane, iż **brakuje atrybutu 'post_list'**. Czy *post_list* czegoś Ci nie przypomina? Tak samo nazwaliśmy nasz widok! Czyli wszystko jest w porządku, po prostu nie stworzyliśmy jeszcze naszego *widoku*. Nie martw się, zajmiemy się tym. -> Jeśli chciałabyś dowiedzieć się więcej na temat konfiguracji URL w Django, zajrzyj do oficjalnej dokumentacji: https://docs.djangoproject.com/en/1.7/topics/http/urls/ +> Jeśli chciałabyś dowiedzieć się więcej na temat konfiguracji URL w Django, zajrzyj do oficjalnej dokumentacji: https://docs.djangoproject.com/en/1.8/topics/http/urls/ diff --git a/pl/django_views/README.md b/pl/django_views/README.md index fababa4c0b6..9fa1ea79e0e 100755 --- a/pl/django_views/README.md +++ b/pl/django_views/README.md @@ -32,4 +32,4 @@ Znowu błąd! Przeczytaj, o co chodzi tym razem: Tym razem jest łatwo: *TemplateDoesNotExist*, Naprawmy ten błąd i stwórzmy szablon - ale to już w następnym rozdziale! -> Więcej na temat widoków Django dowiesz się czytając oficjalną dokumentację: https://docs.djangoproject.com/en/1.7/topics/http/views/ +> Więcej na temat widoków Django dowiesz się czytając oficjalną dokumentację: https://docs.djangoproject.com/en/1.8/topics/http/views/ diff --git a/pl/dynamic_data_in_templates/README.md b/pl/dynamic_data_in_templates/README.md index 9e3b93faba9..b453a8c5cf2 100755 --- a/pl/dynamic_data_in_templates/README.md +++ b/pl/dynamic_data_in_templates/README.md @@ -65,4 +65,4 @@ Zatem ostatecznie nasz plik `blog/views.py` powinien wyglądać następująco: I to wszystko! Czas, żebyśmy wróciły do naszego szablonu i wyświetliły ten QuerySet! -Jeżeli chciałabyś poczytać troszkę więcej na temat QuerySetów w Django, powinnaś rzucić okiem tutaj: https://docs.djangoproject.com/en/1.7/ref/models/querysets/ +Jeżeli chciałabyś poczytać troszkę więcej na temat QuerySetów w Django, powinnaś rzucić okiem tutaj: https://docs.djangoproject.com/en/1.8/ref/models/querysets/ diff --git a/pl/extend_your_application/README.md b/pl/extend_your_application/README.md index 002cf09deaf..6a19ae847d9 100755 --- a/pl/extend_your_application/README.md +++ b/pl/extend_your_application/README.md @@ -46,13 +46,13 @@ Dodajmy adres URL w pliku `urls.py` dla naszego *widoku* `post_detail`! Potrzebujemy stworzyć adres URL wskazujący na *widok* o nazwie `post_detail`, który wyświetli nam cały wpis. Dodaj wiersz `url(r'^post/(?P[0-9]+)/$', views.post_detail),` w pliku `blog/urls.py`. Powinna wyglądać tak: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from . import views - urlpatterns = patterns('', + urlpatterns = [ url(r'^$', views.post_list), url(r'^post/(?P[0-9]+)/$', views.post_detail), - ) + ] Strasznie to wygląda, ale spokojnie - wyjaśniamy: - zaczyna się od `^` again -- "początek" - `post/` oznacza tylko, że zaraz po początku adres URL powinien zawierać słowo **post** i **/**. Na razie nie jest źle. - `(?P[0-9]+)` - ta część jest trudniejsza. Oznacza ona, że Django pobierze wszystko, co umieścisz w tym miejscu i przekaże to do widoku w zmiennej o nazwie `pk`. `[0-9]` dodatkowo mówi nam, że może to być tylko cyfra, nie litera (czyli wszystko pomiędzy 0 a 9). `+` oznacza, że to musi być jedna lub więcej cyfr. Czyli coś takiego: `http://127.0.0.1:8000/post//` nie jest poprawne, ale już `http://127.0.0.1:8000/post/1234567890/` jest jak najbardziej w porządku! - `/` - znów potrzebujemy **/** - `$` - "koniec"! diff --git a/pl/how_internet_works/README.md b/pl/how_the_internet_works/README.md similarity index 100% rename from pl/how_internet_works/README.md rename to pl/how_the_internet_works/README.md diff --git a/pl/how_internet_works/images/internet_1.png b/pl/how_the_internet_works/images/internet_1.png similarity index 100% rename from pl/how_internet_works/images/internet_1.png rename to pl/how_the_internet_works/images/internet_1.png diff --git a/pl/how_internet_works/images/internet_2.png b/pl/how_the_internet_works/images/internet_2.png similarity index 100% rename from pl/how_internet_works/images/internet_2.png rename to pl/how_the_internet_works/images/internet_2.png diff --git a/pl/how_internet_works/images/internet_3.png b/pl/how_the_internet_works/images/internet_3.png similarity index 100% rename from pl/how_internet_works/images/internet_3.png rename to pl/how_the_internet_works/images/internet_3.png diff --git a/pl/how_internet_works/images/internet_4.png b/pl/how_the_internet_works/images/internet_4.png similarity index 100% rename from pl/how_internet_works/images/internet_4.png rename to pl/how_the_internet_works/images/internet_4.png diff --git a/pl/whats_next/README.md b/pl/whats_next/README.md index 07db76879e1..a1856002b10 100755 --- a/pl/whats_next/README.md +++ b/pl/whats_next/README.md @@ -30,7 +30,7 @@ Możesz też spróbować któregoś z materiałów poniżej. Wszystkie bardzo po - [video lekcje Getting Started With Django][10] - [książka Two Scoops of Django: Best Practices for Django][11] - [4]: https://docs.djangoproject.com/en/1.6/intro/tutorial01/ + [4]: https://docs.djangoproject.com/en/1.8/intro/tutorial01/ [5]: http://newcoder.io/tutorials/ [6]: http://www.codecademy.com/en/tracks/python [7]: http://www.codecademy.com/tracks/web diff --git a/uk/deploy/README.md b/uk/deploy/README.md index 1372b7e7c3d..f7aa57859b7 100755 --- a/uk/deploy/README.md +++ b/uk/deploy/README.md @@ -140,7 +140,7 @@ Git -- це система контролю версій, що використ staticfiles local_settings.py db.sqlite3 - + *.py[co] та збережіть його. Крапка на початку імені файлу є важливою! Як можна побачити, ми повідомляємо Heroku про те що треба ігнорувати `local_settings.py` і не завантажувати цей файл, отже він є доступним лише на вашому комп'ютері (локально). diff --git a/uk/django_admin/README.md b/uk/django_admin/README.md index 66bae5f1038..b26ff418875 100755 --- a/uk/django_admin/README.md +++ b/uk/django_admin/README.md @@ -36,6 +36,6 @@ OK, переглянути нашу модель Post. Не забудьте з ![Django адміністратор](images/edit_post3.png) -Якщо бажаєте дізнатися про Django адміністратор, зверніться до Django документації: https://docs.djangoproject.com/en/1.7/ref/contrib/admin/ +Якщо бажаєте дізнатися про Django адміністратор, зверніться до Django документації: https://docs.djangoproject.com/en/1.8/ref/contrib/admin/ Напевно настав вдалий момент прихопити чашку кави (або чаю) і з'їсти трохи солодощів. Ви створили вашу першу Django модель, то ж заслуговуєте на невеличке задоволення! diff --git a/uk/django_forms/README.md b/uk/django_forms/README.md index 80383ea409a..d6337104d87 100755 --- a/uk/django_forms/README.md +++ b/uk/django_forms/README.md @@ -87,14 +87,14 @@ Ok, відкриймо цей файл і наберемо наступний к Остаточно код буде виглядати так: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from . import views - urlpatterns = patterns('', + urlpatterns = [ url(r'^$', views.post_list), url(r'^post/(?P[0-9]+)/$', views.post_detail), url(r'^post/new/$', views.post_new, name='post_new'), - ) + ] Після оновлення сайту бачимо помилку `AttributeError`, оскільки вид `post_new` не є реалізованим. Давайте додамо цей вид прямо зараз. @@ -302,7 +302,7 @@ Django турбується про те, щоб усі поля нашої фо Вітаємо! Ваш додаток стає все більше і більше завершеним! -Якщо бажаєте дізнатись більше інформації про Django форми ознайомтесь із документацією: https://docs.djangoproject.com/en/1.7/topics/forms/ +Якщо бажаєте дізнатись більше інформації про Django форми ознайомтесь із документацією: https://docs.djangoproject.com/en/1.8/topics/forms/ ## Ще одне: розгортання! diff --git a/uk/django_installation/README.md b/uk/django_installation/README.md index 92f794ab1de..c05d7ce9547 100755 --- a/uk/django_installation/README.md +++ b/uk/django_installation/README.md @@ -93,10 +93,10 @@ ## Встановлення Django -Наразі, коли ваше віртуальне середовище активоване, можна встановлювати Django використавши `pip`. В консолі, запустіть `pip install django==1.7.7` (зазначте, що тут ми користуємося подвійним знаком рівності: `==`). +Наразі, коли ваше віртуальне середовище активоване, можна встановлювати Django використавши `pip`. В консолі, запустіть `pip install django==1.8` (зазначте, що тут ми користуємося подвійним знаком рівності: `==`). - (myvenv) ~$ pip install django==1.7.7 - Downloading/unpacking django==1.7.7 + (myvenv) ~$ pip install django==1.8 + Downloading/unpacking django==1.8 Installing collected packages: django Successfully installed django Cleaning up... diff --git a/uk/django_models/README.md b/uk/django_models/README.md index 620f73f1fd8..f37f96beb7a 100755 --- a/uk/django_models/README.md +++ b/uk/django_models/README.md @@ -143,7 +143,7 @@ * `models.DateTimeField` - дата та час. * `models.ForeignKey` - зв'язок із іншою моделлю. -Не будемо пояснювати кожен біт коду, оскільки це може зайняти надто багато часу. Якщо хочете дізнатися більше про поля моделей, а також як визначати речі відмінні від вище описаних, то дивіться документацію Django (https://docs.djangoproject.com/en/1.7/ref/models/fields/#field-types). +Не будемо пояснювати кожен біт коду, оскільки це може зайняти надто багато часу. Якщо хочете дізнатися більше про поля моделей, а також як визначати речі відмінні від вище описаних, то дивіться документацію Django (https://docs.djangoproject.com/en/1.8/ref/models/fields/#field-types). А як щодо `def publish(self):`? Це і є наш метод `publish`, про який ми говорили раніше. `def` означає, що це функція/метод. `publish` - ім'я методу. Ви можете змінити його, якщо бажаєте. Є правило, коли замість пробілів використовуються маленькі літери та знаки підкреслювання (наприклад, якщо ви хочете визначити метод, який обчислює середню ціну, то можна було б назвати його `calculate_average_price`). @@ -170,4 +170,4 @@ Django підготував для нас файл перенесення, як Applying blog.0001_initial... OK -Урааа! Наша модель допису Post тепер знаходиться у нашій базі даних, було б добре побачити її, правда ж? Для цього перейдемо до наступного розділу! \ No newline at end of file +Урааа! Наша модель допису Post тепер знаходиться у нашій базі даних, було б добре побачити її, правда ж? Для цього перейдемо до наступного розділу! diff --git a/uk/django_urls/README.md b/uk/django_urls/README.md index c933bedc7fc..96910973d14 100755 --- a/uk/django_urls/README.md +++ b/uk/django_urls/README.md @@ -14,16 +14,16 @@ URL -- це просто веб адреса. Ви можете побачити Відкриємо файл `mysite/urls.py` і подивимось як він виглядає: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from django.contrib import admin - urlpatterns = patterns('', + urlpatterns = [ # Examples: # url(r'^$', 'mysite.views.home', name='home'), # url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)), - ) + ] Як бачите, Django вже щось записав сюди для нас. @@ -53,13 +53,13 @@ URL адміністратора, котрий ви відвідували у п Ваш файл `mysite/urls.py` повинен наразі мати такий вигляд: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from django.contrib import admin - urlpatterns = patterns('', + urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'', include('blog.urls')), - ) + ] Django тепер перенаправлятиме усе, що надходить на http://127.0.0.1:8000/ до `blog.urls` і шукатиме там подальші інструкції. @@ -68,7 +68,7 @@ Django тепер перенаправлятиме усе, що надходит Створіть новий пустий файл `blog/urls.py`. Добре! Додайте наступні перші два рядки: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from . import views @@ -76,9 +76,9 @@ Django тепер перенаправлятиме усе, що надходит Після цього, ми можемо додати наш перший URL шаблон: - urlpatterns = patterns('', + urlpatterns = [ url(r'^$', views.post_list), - ) + ] Як бачите, ми присвоюємо відображення із назвою `post_list` значенню URL `^$`. Але що означає `^$`? Це магія регулярних виразів :) Давайте розберемось по порядку: - `^` в регулярному виразі означає "початок"; з цього знаку ми можемо розпочати пошук нашого шаблону - `$` відповідає лише "закінченню" рядка, що означає, що ми будемо тут завершувати наш пошук @@ -93,4 +93,4 @@ Django тепер перенаправлятиме усе, що надходит Можете прочитати тут: **no attribute 'post_list'**. Чи *post_list* не нагадує вам про щось? Це назва нашого відображення! Це означає, що усе на місці, ми просто ще не створили відповідне відображення. Не переймайтесь, ми його отримаємо. -> Якщо бажаєте дізнатися більше про Django URLconf, зверніться до офіційної документації: https://docs.djangoproject.com/en/1.7/topics/http/urls/ +> Якщо бажаєте дізнатися більше про Django URLconf, зверніться до офіційної документації: https://docs.djangoproject.com/en/1.8/topics/http/urls/ diff --git a/uk/django_views/README.md b/uk/django_views/README.md index 1d73147e7a5..eba06a6d087 100755 --- a/uk/django_views/README.md +++ b/uk/django_views/README.md @@ -32,4 +32,4 @@ OK, давайте відкриємо цей файл подивимось що Цього разу усе просто: *TemplateDoesNotExist*.Виправимо це і створимо шаблон в наступному розділі! -> Дізнатися більше про Django відображення можна звернувшись до офіційної документації: https://docs.djangoproject.com/en/1.7/topics/http/views/ \ No newline at end of file +> Дізнатися більше про Django відображення можна звернувшись до офіційної документації: https://docs.djangoproject.com/en/1.8/topics/http/views/ diff --git a/uk/dynamic_data_in_templates/README.md b/uk/dynamic_data_in_templates/README.md index 98ee788bac5..95d308359c3 100755 --- a/uk/dynamic_data_in_templates/README.md +++ b/uk/dynamic_data_in_templates/README.md @@ -65,4 +65,4 @@ Це все! Час повернутись назад до нашого шаблону і вивести QuerySet! -Якщо бажаєте дізнатись трохи більше про QuerySets в Django, зазирніть сюди: https://docs.djangoproject.com/en/1.7/ref/models/querysets/ +Якщо бажаєте дізнатись трохи більше про QuerySets в Django, зазирніть сюди: https://docs.djangoproject.com/en/1.8/ref/models/querysets/ diff --git a/uk/extend_your_application/README.md b/uk/extend_your_application/README.md index 99df3191760..75644f9fcc2 100755 --- a/uk/extend_your_application/README.md +++ b/uk/extend_your_application/README.md @@ -46,13 +46,13 @@ Ми бажаємо створити URL щоб направляти Django до відображення, що називається `post_detail`, що в свою чергу має відобразити введений пост. Додамо рядок `url(r'^post/(?P[0-9]+)/$', views.post_detail),` у файл `blog/urls.py`. Це буде виглядати наступним чином: - from django.conf.urls import patterns, include, url + from django.conf.urls import include, url from . import views - urlpatterns = patterns('', + urlpatterns = [ url(r'^$', views.post_list), url(r'^post/(?P[0-9]+)/$', views.post_detail), - ) + ] Виглядає жахливо, але не хвилюйтесь - ми пояснимо вам: - усе починається із `^` знову -- "початок" - `post/` лише означає, що після початку, URL має містити слово **post** і **/**. Все йде добре. - `(?P[0-9]+)` - ця частина хитріша. Це означає, що Django візьме усе, що ви тут розмістите і передасть це до відображення як змінну із ім'ям `pk`. `[0-9]` також повідомляє нас про те, що це може бути лише цифрою, не літерою (будь-яке значення між 0 та 9). `+` означає, що тут має бути один або більше символів. Таким чином, щось на зразок `http://127.0.0.1:8000/post//` є неприйнятним, однак `http://127.0.0.1:8000/post/1234567890/` цілком! - `/` - далі нам потрібно знову**/** - `$` - "кінець"! diff --git a/uk/how_internet_works/README.md b/uk/how_the_internet_works/README.md similarity index 100% rename from uk/how_internet_works/README.md rename to uk/how_the_internet_works/README.md diff --git a/uk/how_internet_works/images/internet_1.png b/uk/how_the_internet_works/images/internet_1.png similarity index 100% rename from uk/how_internet_works/images/internet_1.png rename to uk/how_the_internet_works/images/internet_1.png diff --git a/uk/how_internet_works/images/internet_2.png b/uk/how_the_internet_works/images/internet_2.png similarity index 100% rename from uk/how_internet_works/images/internet_2.png rename to uk/how_the_internet_works/images/internet_2.png diff --git a/uk/how_internet_works/images/internet_3.png b/uk/how_the_internet_works/images/internet_3.png similarity index 100% rename from uk/how_internet_works/images/internet_3.png rename to uk/how_the_internet_works/images/internet_3.png diff --git a/uk/how_internet_works/images/internet_4.png b/uk/how_the_internet_works/images/internet_4.png similarity index 100% rename from uk/how_internet_works/images/internet_4.png rename to uk/how_the_internet_works/images/internet_4.png diff --git a/uk/whats_next/README.md b/uk/whats_next/README.md index 489721c1981..20cf6044221 100755 --- a/uk/whats_next/README.md +++ b/uk/whats_next/README.md @@ -30,7 +30,7 @@ - [Getting Started With Django video lessons][10] - [Two Scoops of Django: Best Practices for Django][11] book - [4]: https://docs.djangoproject.com/en/1.7/intro/tutorial01/ + [4]: https://docs.djangoproject.com/en/1.8/intro/tutorial01/ [5]: http://newcoder.io/tutorials/ [6]: http://www.codecademy.com/en/tracks/python [7]: http://www.codecademy.com/tracks/web