Как сохранить значение одной формы в двух полях модели? - PullRequest
0 голосов
/ 06 мая 2020

Я хочу, чтобы значение из формы допуска сохранялось в полях допуска и in_stock. на странице заполнения формы нет формы in_stock

models.py

class Admission(models.Model):
name = models.CharField(max_length=100,db_index=True)
date = models.DateTimeField()
in_stock = models.IntegerField(blank=True)
admission = models.IntegerField()

def __str__(self):
    return '{}'.format(self.name)

forms.py

class AdmissionForm(forms.ModelForm):
class Meta:
    model = Admission
    fields = ['date', 'name', 'admission', 'in_stock']

views.py

class AdmissionCreate(View):
def get (self, request):
    form = AdmissionForm()
    return render(request, 'inventory/addAdmissions.html', context={'form': form})

def post(self, request):
    form = AdmissionForm(request.POST)
    if form.is_valid():
        form.save()
        return redirect(admission_list)

1 Ответ

0 голосов
/ 06 мая 2020

Если я сейчас понял, вы хотите отправить форму, но у вас есть значение поля, дублированное на другое, т.е. поле допуска будет 111, а при сохранении формы in_stock также будет 111. Один из способов сделать это будет в форме проверки и определения функции clean_fieldname.

https://docs.djangoproject.com/en/3.0/ref/forms/validation/

class AdmissionForm(forms.ModelForm):
    class Meta:
        model = Admission
        fields = ['date', 'name', 'admission', 'in_stock']

    def clean_in_stock(self):
        return self.cleaned_data['admission']

У меня есть одно сомнение в том, что вы запрашиваете in_stock в вашей форме, которая предположительно отображается в HTML, и значение, введенное при отправке формы. Возможно, вы не захотите этого делать и можете полностью исключить поле из формы в мета-форме формы.

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