У меня есть два максимума приложений и тренировки.Я подклассифицировал поле множественного выбора в приложении maxes, и в формах оно запрашивает приложение тренировки, чтобы получить все имена лифтов.Таким образом, мне не нужно вводить данные дважды, это работает, и я получаю список всех упражнений, которые я добавил в свое приложение для тренировок.НО, когда я иду, чтобы сохранить данные, это вводит имя тренировки.Я полагаю, что это потому, что я объявил имя тренировки с self в файле models.py. Как сохранить имя подъема из таблицы тренировок в моей базе данных 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)
В результате необходимо ввести имя лифта в базу данных maxes, а не имя wokoutplan.Если я переименую self.wplan в self.lift, он будет работать