Сохранение подклассов модели полей выбора из формы в базу данных Django - PullRequest
0 голосов
/ 10 июня 2019

У меня есть два максимума приложений и тренировки.Я подклассифицировал поле множественного выбора в приложении 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, он будет работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...