ワークアウトごとのエクササイズに関連する Django アプリケーションを開発しようとしています。
現在、2 つのテーブルがあります。1 つはエクササイズ (ワークアウトごとに複数のエクササイズ) 情報を格納するテーブルで、もう 1 つはワークアウト情報を格納するテーブルで、 2 つの間の外部キーであるワークアウトを使用しています。
しかし、1 つのフォーム内に複数の演習を送信するという概念を理解するのに苦労しています。
私は Django 初心者なので、冗長なコードや役に立たないコードがあれば遠慮なく指摘してください。
モデル.py
class workout(models.Model):
user = models.ForeignKey(User , db_column='userid')
datesubmitted = models.DateField()
workoutdate = models.DateField();
bodyweight = models.FloatField(null=True);
totalreps = models.IntegerField()
totalweight = models.FloatField()
numsets = models.IntegerField();
numexercises = models.IntegerField()
workoutname = models.CharField(max_length=250)
def getallexercises (self,id):
all_workout_exercises = exercise.objects.filter(workoutid = id)
return all_workout_exercises
def get_absolute_url(self):
return "/home"
class workoutForm(ModelForm):
class Meta:
model = workout
exclude = ('user','bodyweight','totalreps','totalweight','datesubmitted')
class exercise(models.Model):
workout = models.ForeignKey(workout,db_column='workoutid')
userid = models.IntegerField();
exercisename = models.CharField(max_length = 100)
repetitions = models.IntegerField()
weight = models.FloatField()
def get_absolute_url(self):
return "/home"
class exerciseForm(ModelForm):
class Meta:
model = exercise
ビュー.py
class workoutCreate(CreateView):
form_class = workoutForm
model = workout
def form_valid(self,form):
createxercise(self.request,self.model.pk)
form.instance.user = self.request.user;
form.instance.bodyweight = self.request.POST['weight']
form.instance.datesubmitted = datetime.datetime.now()
form.instance.totalweight = summation(list(self.request.POST['weightinputboxes']))
form.instance.totalreps = summation(list(self.request.POST['repinputboxes']))
return super(workoutCreate, self).form_valid(form)
練習問題はどこに提出すればよいですか? inlineformset_factoryについて読んだことがありますが、テーブルに複数の演習行を作成するためにこれを機能させることができるかどうかはわかりません...
助けてくれてありがとう、ありがとう!