我有两个应用程序最大值和训练。我在maxes应用程序中对一个多选字段进行了子类化,并在表格中查询训练应用程序以提取所有电梯名称。这样,我就不必输入两次数据,它可以工作,我可以在我的健身应用程序中获得一个我输入的所有举重的列表。但当我去保存数据时,它会输入训练名称。我相信这是因为我已经在models.py中用self声明了训练名称。如何将训练表中的提升名称保存到我的maxes数据库中
我已经尝试将sublcass字段添加到.save()中。我也改成了一个原始的形式,而不是一个模型
maxes--fields.py
from django.forms.models import ModelChoiceField
class workoutsliftModelChoice(ModelChoiceField):
def label_from_instance(self, obj):
return str(obj.lift)
maxes -- forms.py
class maxesModelForm(forms.ModelForm):
lift = workoutsliftModelChoice(
label=("Lift"),
queryset=wplans.objects.all(),
required=True
)
reps = forms.IntegerField()
weight = forms.IntegerField()
class Meta:
model = maxes
fields = [
'lift',
'weight',
'reps'
]
maxes -- views.py
def maxesList(request, *args, **kwargs):
maxesInputForm = maxesModelForm(request.POST or None)
maxesListTemplate = maxes.objects.all()
if maxesInputForm.is_valid():
maxesInputForm.save()
maxesInputForm = maxesModelForm()
context_form = {
'maxesListTemplate': maxesListTemplate,
'maxesInputForm': maxesInputForm
}
return render(request, 'maxes/maxes_list.html', context_form)
workouts -- models.py
class wplans(CreationModificationDateMixin):
wplan = models.CharField(max_length=50, blank=False)
gnumber = models.IntegerField(default=0, blank=False)
wnumber = models.IntegerField(default=0, blank=False)
lift = models.CharField(max_length=30, blank=False)
weight = models.IntegerField(default=0, blank=False)
sets = models.IntegerField(default=0, blank=False)
reps = models.IntegerField(default=0, blank=False)
def __str__(self):
return '%s' % (self.wplan)
结果是将电梯名称输入MAXS数据库,而不是wokoutplan名称。如果我将self.wplan重命名为self.lift,它就会工作
目前没有回答
相关问题 更多 >
编程相关推荐