前提、実現したい設定
現在、django3.2.3 で筋トレメニューを管理するメモアプリを作成しています。
models.pyファイルで、countとweightのデータ入力欄をset_countに入力された数と同じ数だけ作成したいと考えています。
例えば、set_countに3を入力すると、countとweight入力欄が3個づつ作成される設定です。
しかし下記のようにコードを書いても上手くいきません。
何か良い方法があれば教えてほしいです。
該当のソースコード
#models.py from django.db import models # Create your models here. back_menu = ('rat_pull','ラットプル'),('dead_lift','デッドリフト'),('bent','ベントオーバー'),('lia','リアデルト') class BackModel(models.Model): menu = models.CharField( max_length=30, choices = back_menu ) date = models.DateField(null = True) set_count = models.IntegerField(default=0) x = 1 while x <= set_count: count = models.IntegerField(default=0) weight = models.IntegerField(default=63) x += 1 def __str__(self): return self.menu
###エラーメッセージ
while x <= set_count: TypeError: '<=' not supported between instances of 'int' and 'IntegerField'
試したこと
エラーメッセージで、<=はintとIntegerField間では使えないと書いてあるので、set_count内に入力された数字のデータを抽出することを試みました。
↓(修正前)
from django.db import models # Create your models here. back_menu = ('rat_pull','ラットプル'),('dead_lift','デッドリフト'),('bent','ベントオーバー'),('lia','リアデルト') class BackModel(models.Model): menu = models.CharField( max_length=30, choices = back_menu ) date = models.DateField(null = True) set_count = models.IntegerField(default=0) x = 1 while x <= set_count: count = models.IntegerField(default=0) weight = models.IntegerField(default=63) x += 1 def __str__(self): return self.menu
↓(修正後)
from django.db import models # Create your models here. back_menu = ('rat_pull','ラットプル'),('dead_lift','デッドリフト'),('bent','ベントオーバー'),('lia','リアデルト') class BackModel(models.Model): menu = models.CharField( max_length=30, choices = back_menu ) date = models.DateField(null = True) set_count = models.IntegerField(default=0) x = 1 while x <= BackModel.objects.all().filter(set_count): count = models.IntegerField(default=0) weight = models.IntegerField(default=63) x += 1 def __str__(self): return self.menu
↓(修正後のエラーメッセージ)
while x <= BackModel.objects.all().filter(set_count): NameError: name 'BackModel' is not defined
BackModel.objects.all().filter(set_count)の使い方が間違っているのでしょうか?
そもそもwhile文の使い方が間違っているのでしょうか?
djangoを勉強したばかりで初歩的なことかもしれませんが、何か知っていればご教授お願いいたします。
補足情報(FW/ツールのバージョンなど)
djangoのバージョン 3.2.3
pythonのバージョン 3.8.5
WSL Ubuntu-20.04で編集しています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。