1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Django初心者がSNSアプリを作る その4

Last updated at Posted at 2022-09-02

前回 https://qiita.com/YuDachi/items/e5513b17843bb22a1689
元記事 https://note.com/saito_pythonista/n/n6550f5c2a07b

前回は投稿一覧/詳細ページのイメージを作成した。今回は引き続き投稿作成/削除画面を作成する。
イメージまで作成しようと思ったが、元記事の完成形を見る限り今作成する必要は無さそうだったので、ページの表示のみを目標にする。
やることは前回までと同じなので、細かな説明はしない。おおまかな流れとしては、

  • htmlファイルを作成
  • htmlファイルに対応するviewを、views.pyに記述
  • viewに対応するURLを、urls.pyに記述
  • ページが表示されるか確認

確認するためのリンクを設置するのを忘れてたので、createボタンはlist.htmlに、deleteボタンはdetail.htmlに配置することにした。

views.py

views.py
# 追加
class CreateView(TemplateView):
    template_name = "create.html"
# 追加
class DeleteView(TemplateView):
    template_name = "delete.html"

urls.py

urls.py
urlpatterns = [
    path('', Home.as_view(), name='home'),
    path('detail1', DetailView.as_view(), name='detail1'),
    path('create', CreateView.as_view(), name='create'), #追加
    path('delete', DeleteView.as_view(), name='delete'), #追加
]

list.html

list.html
<div class="container">
    <div class="tweet">
        ---(中略)---
    </div>
    <div class="tweet">
        ---(中略)---
    </div>
    # 追加
    <a href="./create" class="create">ツイート作成</a>
</div>

detail.html

detail.html
<div class="container">
    <h1>THIS IS DETAIL</h1>
    <div class="tweet">
        ---(中略)---
    </div>
    # 追加
    <a href="./delete" class="delete">削除</a>
</div>

これで、内容はともかく必要なページの表示が完了した。
ちょっと短いが今回はここで一区切りで、次回からモデル周りの実装に移っていく予定。

作りながらやっているので分量がバラバラだったり、コードの載せ忘れ(特にCSSとか)が多そうなので、完走したら読みやすくしたものを書きたいという気持ち。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?