Posts
Djangoで1対多のリレーションを構築する【カテゴリ指定、コメントの返信などに】【ForeignKey】
DjangoでOpenStreetMap(OSM)とleaflet.jsを使ってマッピングアプリを作る
Vimのコメントの自動補完を無効化させる【JavaScriptやCSS、シェルスクリプトでコメントアウトした後、Enter押すと自動で出てくるアレ】
DjangoのMessageFrameworkで投稿とエラーをフロント側に表示する
MessageFrameworkを使ってHelloWorldを表示させる。 元になるコードは40分Djangoにforms.pyを追加した状態から流用している。 まず、views.pyにて、公式からコードを拝借して追加した。 from django.shortcuts import render,redirect from django.views import View from .models import Topic from .forms import TopicForm #↓追加 from django.contrib import messages class IndexView(View): def get(self, request, *args, **kwargs): #↓追加 messages.add_message(request, messages.INFO, 'Hello world.') topics = Topic.objects.all() context = { "topics":topics } return render(request,"bbs/index.html",context) def post(self, request, *args, **kwargs): form = TopicForm(request.POST) if form.is_valid(): form.save() return redirect("bbs:index") index = IndexView.as_view() HTML側でメッセージを表示させるにはこうする。 <!DOCTYPE ...Laravelに必要なPHP構文【if,for,function,class,型変換、配列操作など】
DjangoでAjax(jQuery)を実装、送信と同時に投稿内容を確認する【Django Rest Framework不使用版】
【Django】formタグを使ってHTTPリクエストのGETメソッド、POSTメソッドを送信する
前提 DjangoでHelloWorld【HttpResponse及びレンダリング】ができた状態を前提として話を進める。 HTTPリクエストのGETメソッドの送信方法 用途は主に、検索がある。 まずindex.html <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous"> </head> <body> <main class="container"> <form action="" method="GET"> <input type="text" name="search" value="{{ request.GET.search }}" placeholder="キーワード"> <input type="submit" value="検索"> </form> </main> </body> </html> form ...【Django】複数のアプリを作る場合、models.pyのモデルクラスにテーブル名を指定するべきではない【重複問題】
背景 最近、models.pyを書く時、db_tableを指定している現状に違和感が出てきた。 from django.db import models class Topic(models.Model): #↓これは必要なのか? class Meta: db_table = "topic" #↑これは必要なのか? comment = models.CharField(verbose_name="コメント",max_length=2000) def __str__(self): return self.comment もしやと思い、db.sqlite3を確認する。すると、上記のモデルをマイグレーションしたときのテーブル名 ...Djangoのインタラクティブシェルを使う【python3 manage.py shell】