简体   繁体   中英

I want to update multiple model fields at the same time in Django

I want to update all the marks fields from the form.py module: so Can anyone suggest me the best way for updating all the marks fileds at a time.

Views.py

def marks_view(request, roll_number):
   return render(request, 'marks_entry.html')

Models.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)

You can use Django forms ( ModelForm class),

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__')

your 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})

This is a general implementation. It will be better if you read the doc first.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM