列を IntegerField から外部キーに変換する際に、彼らがどのような手順を実行するのが最善なのか疑問に思っていました。ここに私の2つのモデルがあります:
class workout(models.Model):
userid = models.IntegerField()
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)
そして2番目のもの:
class exercise(models.Model):
userid = models.IntegerField();
workoutid = models.IntegerField();
exercisename = models.CharField(max_length = 100)
repetitions = models.IntegerField()
weight = models.FloatField()
そして最後に私のdjangoビューコード:
user =User.objects.get(username = request.session['username']) #user
dates = request.GET.getlist('datepickerfilter') # two dates
workout_ids = workout.objects.filter(userid=user.id).filter( workoutdate__gte = dates[0]).filter(workoutdate__lte = dates[1])
all_exercises = exercise.objects.filter(workoutid__in = workout_ids)
エクササイズ モデルの 'workoutid' 列を、ワークアウト モデルの id フィールドに関連する外部キーに変更したいと考えています。モデルフィールドを次のように変更してみました:
workoutid = models.ForeignKey(workout);
そして、この order_by ステートメントを私のビューの all_exercises の最後に追加します。
all_exercises = exercise.objects.filter(workoutid__in = workout_ids).order_by("workoutid__workoutdate")
次のようなエラーが表示されます。
(1054, "Unknown column 'tracking_exercise.workoutid_id' in 'field list'")
私のモデルコードの問題だと思いますが、ビューの問題である可能性があるかどうかはわかりません。
助けてくれてありがとう!