I have a model
JavaScript
x
12
12
1
class Tutor(models.Model):
2
name = models.CharField(max_length=100)
3
qualification = models.CharField(max_length=100)
4
experience = models.CharField(max_length=200)
5
tution_fee = models.CharField(max_length=100)
6
about = models.CharField(max_length=1000)
7
demo_classes_link = models.CharField(max_length=1000)
8
contact_number = models.CharField(max_length=10)
9
email_id = models.EmailField(null=True, blank=True)
10
material = models.CharField(max_length=1000)
11
status = models.BooleanField(null=True, blank=True)
12
and a form
JavaScript
1
6
1
class GeeksForm(forms.ModelForm):
2
# specify the name of model to use
3
class Meta:
4
model = Tutor
5
fields = "__all__"
6
Now I have captured all the data using POST API form is validated.
JavaScript
1
18
18
1
def registration(request) :
2
form = GeeksForm(request.POST)
3
# Check if the form is valid:
4
if form.is_valid():
5
number = request.POST['contact_number']
6
print(number)
7
r = requests.get('http://apilayer.net/api/validate?access_key=***********&number=*******&country_code=+91&format=1', params=request.GET)
8
if r.status_code == 200:
9
form['status'] = 1 # I want to update this once is form is validated, django throws an error.
10
form.save()
11
return HttpResponse('Yay, it worked')
12
currentID = form.auto_id
13
print(currentID)
14
# form = GeeksForm()
15
else :
16
print("Invalid")
17
return render(request, 'Tutorform.html', {'form': form})
18
How do I update status parameter of model in django after form validation is successful ?
Advertisement
Answer
Retrieve the underlying model instance, change the field value and save the form.
JavaScript
1
6
1
if r.status_code == 200:
2
myform = form.save(commit=False) #returns model instance object
3
myform.status = True
4
myform.save()
5
return HttpResponse('Yay, it worked')
6