Я хочу обновлять несколько полей одновременно в форме django model form
Я пробовал фильтровать по номеру рулона в файле views.py поэтому я хочу обновить все поля оценок из модуля form.py, может ли кто-нибудь предложить мне лучший способ обновления всех полей оценок за один раз.
def marks_view(request, roll_number):
return render(request, 'marks_entry.html')
modles.py
class NurseryResult(models.Model):
roll_number = models.PositiveIntegerField(primary_key=True)
student_name = models.CharField(max_length=50, blank=False)
academic_Year = models.CharField(blank=True, max_length=50)
nepali = models.PositiveIntegerField( blank=True)
nepali_gpa = models.FloatField( blank=True)
nepali_grade = models.CharField( blank=True, max_length=50)
english = models.PositiveIntegerField( blank=True)
english_gpa = models.FloatField(blank=True)
english_grade = models.CharField(blank=True, max_length=25)
math = models.PositiveIntegerField(blank=True)
math_gpa = models.FloatField(blank=True)
math_grade = models.CharField(max_length=50, blank=True)
science = models.PositiveIntegerField(blank=True)
science_gpa = models.FloatField(blank=True)
science_grade = models.CharField(max_length=10, blank=True)
oral_nepali = models.PositiveIntegerField(blank=True)
oral_nepali_gpa = models.FloatField(blank=True)
oral_nepali_grade = models.CharField(max_length=50, blank=True)
oral_math = models.PositiveIntegerField(blank=True)
oral_math_gpa = models.FloatField(blank=True)
oral_math_grade = models.CharField(max_length=50, blank=True)
oral_english = models.PositiveIntegerField(blank=True)
oral_english_gpa = models.FloatField(blank=True)
oral_english_grade = models.CharField(max_length=50, blank=True)
hygiene = models.PositiveIntegerField(blank=True)
hygiene_gpa = models.FloatField(blank=True)
hygiene_grade = models.CharField(max_length=50, blank=True)
grade = models.CharField(max_length=10, blank=True)
gpa = models.FloatField(blank=True)
Вы можете использовать Django forms
(ModelForm
класс),
class NurseryResultForm(forms.ModelForm):
class Meta:
model = NurseryResult
fields = '__all__' # fields you need in form
exclude = [...] # fields you don't need in form(if fields = '__all__')
ваш views.py
def marks_view(request, roll_number):
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = NurseryResult(request.POST)
# check whether it's valid:
if form.is_valid():
# process the data in form.cleaned_data as required
# ...
# redirect to a new URL:
return HttpResponseRedirect('/url/')
# if a GET (or any other method) we'll create a blank form
# or fill the form with query object
else:
form = NurseryResultForm()
return render(request, 'your_temlate.html', {'form': form})
Это общая реализация. Будет лучше, если вы сначала прочитаете doc.