DjangoのORMを使用したときの参照テーブルへの条件指定
FKで参照しているテーブルに関しては、参照している先から filter にて参照が可能。 仮に、下記のようなモデルがあったとする。 from django.db import models class test_grand_parents(models.Model): name models.CharField(max_length=50); created_at = models.DateTim…
FKで参照しているテーブルに関しては、参照している先から filter にて参照が可能。 仮に、下記のようなモデルがあったとする。 from django.db import models class test_grand_parents(models.Model): name models.CharField(max_length=50); created_at = models.DateTim…
テストコードカバレッジとは テストの進捗率、テストの網羅率を指す。これを実行することで、テストが制作したときの観点を網羅できているかを確認することができる。 品質評価の指標にも使用できるため、 網羅率が低い = 品質が低い というように設定することもできる。 モジュールの設定 requirements.txt に下記を追加する。 coverage==6.5.0 実行 下記のコマンドを実行することで…
基本的によく使いのは、検査値が、同じかどうか、真か偽か(True or False)。 メソッド確認事項assertEqual(a, b)a と bが同じ値assertNotEqual(a, b)a と bが違う値assertTrue(x)x が真(True)assertFalse(x)x が偽(False)assertIs(a, b)a と bが同じオブジェクトassertIsNot(a, b)…
テストコードを作成する場合に、ファイルを送信したテストをおこないたい場合がある。方法として、2つ残しておく。 Viewでおこなう Viewでのテストコードの基本的な書き方は、こちらを参照。 https://tech.tokiraku.com/archives/86 from django.test import TestCase,Client def test_TestView(self): wi…
基本的なコードの書き方は同じだが、Viewの場合は、URL経由でおこなう必要がある。 テストコードの基本的な書き方は、こちらを参照 https://tech.tokiraku.com/archives/82 REST APIでおこなっていることを前提とした例は次のようになる。 GETメソッド from django.test import TestCase,Client def test_Test…
Djangoで用意されているコードテストの方法。 コードの準備 任意の場所にテスト用のディレクトリを作成し、初期化用のファイルを作成する。作成するファイルの中身は空でよい。 __init__.py このファイルがないと、テストが実行されない。 テストコードを記述するファイル。 接頭辞に「test_」を入れたファイルを作成する。接頭辞がないと、テストの対象とは認識されない。 test_[..…
setting.pyへの設定追加 Djangoの setting.py に下記のコードを設定する。※CACHESは初期状態から存在していることがあるので、ある場合には上書きする。 # redis CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', 'LOCAT…
設定テンプレート 下記内容を、 settings.py に記述する。 #ログ出力 LOGGING = { 'version': 1, # これを設定しないと怒られる 'formatters': { # 出力フォーマットを文字列形式で指定する 'all': { # 出力フォーマットに`all`という名前をつける 'format': &#…
アプリケーションなどで、開発環境や本番環境で、設定情報が変更されるようなものは、ハードコードしたくないので、外部から参照できる設定ファイルにしておきたい。その時に、Dockerの環境変数として設定できると嬉しい。 Dockerの環境変数設定 docker-compose.xml のプロパティとして、 env_file がある。ここに、環境変数設定をおこなうことが可能となる。 <例>: env…
Docker上で、Djangoプロジェクトを実行する際、 docker-compose.yaml にコマンドを記載する方法もあるが、その方法だと、不都合が生じる場合がある。 その不都合とは、awsなどの実稼働環境に載せた場合に、コンテナ定義がdocker-composeではなくなってしまうため、コンテナの起動と同時にDjangoプロジェクトが起動しない。 そのため、シェルプログラムなどに実行時のコ…
docker-composeファイルのテンプレート version: '3' services: web: build: . volumes: - .:/code tty: true ports: - 8000:8000 networks: - external.group networks: external.group: external: true Dockerfileのテン…