You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: pt/django_forms/README.md
+48-47Lines changed: 48 additions & 47 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,16 +16,17 @@ Precisamos criar um arquivo com este nome dentro da pasta `blog`.
16
16
17
17
Ok, vamos abri-lo e escrever nele o seguinte:
18
18
19
-
```python
20
-
from django import forms
21
-
22
-
from .models import Post
23
-
24
-
classPostForm(forms.ModelForm):
25
-
26
-
classMeta:
27
-
model = Post
28
-
fields = ('title', 'text',)```
19
+
```python
20
+
from django import forms
21
+
22
+
from .models import Post
23
+
24
+
classPostForm(forms.ModelForm):
25
+
26
+
classMeta:
27
+
model = Post
28
+
fields = ('title', 'text',)
29
+
```
29
30
30
31
31
32
Primeiro precisamos importar o módulo de formulários do Django (`from django import forms`) e, obviamente, nosso modelo `Post` (`from .models import Post`).
@@ -45,38 +46,38 @@ Então, mais uma vez, nós iremos criar: um link para a página, uma URL, uma vi
45
46
É hora de abrir `blog/templates/blog/base.html`. Nós iremos adicionar um link em `div` nomeado `page-header`:
Para criar um novo formulario `Post`, nós devemos chamar `PostForm()` e passá-lo para o template. Nós iremos voltar para esta *view*, mas por agora vamos criar rapidamente um template para o formulário.
@@ -137,7 +138,7 @@ Precisamos criar um arquivo `post_edit.html` na pasta `blog/templates/blog`. Pra
137
138
138
139
Beleza, então vamos ver como ficou o HTML `post_edit.html`:
{%raw}Tempo para explicar o misterioso `{% url 'blog.views.post_detail' pk=post.pk %}`. Como você pode suspeitar, a notação de `{% %}` significa que estamos usando as tags de template do Django. Desta vez vamos usar uma que vai criar uma URL para nós!{% endraw %}
37
+
{%raw %}Tempo para explicar o misterioso `{% url 'blog.views.post_detail' pk=post.pk %}`. Como você pode suspeitar, a notação de `{% %}` significa que estamos usando as tags de template do Django. Desta vez vamos usar uma que vai criar uma URL para nós!{% endraw %}
38
38
39
39
`blog.views.post_detail` é um caminho para um `post_detail`*Vista* que queremos criar. Preste atenção: `blog` é o nome da sua aplicação (o diretório `blog`), `views` vem do nome do arquivo `views.py` e, a última parte - `post_detail` - é o nome da *view*.
40
40
@@ -50,15 +50,15 @@ Vamos criar a URL em `urls.py` para a nossa`post_detail` *view*!
50
50
51
51
Queremos criar uma URL para guiar o Django para a *view* chamada `post_detail`, que irá mostrar um post completo do blog. Adicione a linha `url(r'^post/(?P<pk>[0-9]+)/$', views.post_detail),` ao arquivo `blog/urls.py`. Deve ficar assim:
Parece assustador, mas não se preocupe - vamos explicar ele para você: - começa com `^` de novo... "o início" - `post /` significa apenas que após o começo, da URL deve ter a palavra **post** e **/**. Até aqui, tudo bem. - `(?P<pk>[0-9]+)` - essa parte é mais complicada. Isso significa que o Django vai levar tudo que você colocar aqui e transferir para uma view como uma variável chamada `pk`. `[0-9]` também nos diz que só pode ser um número, não uma letra (tudo entre 0 e 9). `+` significa que precisa existir um ou mais dígitos. Então algo como `http://127.0.0.1:8000/post//` não é válido, mas `http://127.0.0.1:8000/post/1234567890/` é perfeitamente ok! -`/` - então precisamos de **/** outra vez - `$` - "o fim"!
64
64
@@ -128,21 +128,22 @@ Ah não! Outro erro! Mas nós já sabemos como lidar com isso, né? Precisamos a
128
128
Vamos criar um arquivo em `blog/templates/blog` chamado `post_detail.html`.
129
129
130
130
Será algo parecido com isto:
131
-
```html
132
-
{% extends 'blog/base.html' %}
133
-
134
-
{% block content %}
135
-
<divclass="post">
136
-
{% if post.published_date %}
137
-
<divclass="date">
138
-
{{ post.published_date }}
139
-
</div>
140
-
{% endif %}
141
-
<h1>{{ post.title }}</h1>
142
-
<p>{{ post.text|linebreaks }}</p>
143
-
</div>
144
-
{% endblock %}
145
-
```
131
+
132
+
```html
133
+
{% extends 'blog/base.html' %}
134
+
135
+
{% block content %}
136
+
<divclass="post">
137
+
{% if post.published_date %}
138
+
<divclass="date">
139
+
{{ post.published_date }}
140
+
</div>
141
+
{% endif %}
142
+
<h1>{{ post.title }}</h1>
143
+
<p>{{ post.text|linebreaks }}</p>
144
+
</div>
145
+
{% endblock %}
146
+
```
146
147
147
148
Mais uma vez estamos estendendo `base.html`. No bloco de `content` queremos exibir o published_date (data de publicação) do post (se houver), título e texto. Mas devemos discutir algumas coisas importantes, certo?
148
149
@@ -160,11 +161,11 @@ Yay! Funciona!
160
161
161
162
Seria bom ver se seu site ainda estará trabalhando em PythonAnywhere, certo? Vamos tentar fazer deploy novamente.
162
163
```bash
163
-
$ git status
164
-
$ git add -A .
165
-
$ git status
166
-
$ git commit -m "Added views to create/edit blog post inside the site."
167
-
$ git push
164
+
$ git status
165
+
$ git add -A .
166
+
$ git status
167
+
$ git commit -m "Added views to create/edit blog post inside the site."
0 commit comments