i have 2 model one is Tempdriver and other one is Hiring, i am register new customer in Tempdriver table, i need when i edit tempdriver record and status is (accept) and when i save this record then need to same record create on hiring table with matching column with status=(Applied on app) rest column should be null in hiring table
models.py
JavaScript
x
24
24
1
class Tempdriver(BaseModel):
2
name = models.CharField(max_length=255)
3
mobile = models.CharField(max_length=20,unique=True,null=True, blank=True)
4
alternate_number = models.CharField(max_length=20, null=True, blank=True)
5
date = models.DateField(null=True, blank=True)
6
address = models.CharField(max_length=200, null=True, blank=True)
7
status = EnumField(choices=['Accept','Reject','Hold'], null=True)
8
9
class Hiring(BaseModel):
10
11
STATUS_CHOICES = (('', 'Type...'),
12
('HR Interview Pass', 'HR Interview Pass'),
13
('HR Interview Fail', 'HR Interview Fail'),
14
('Allocation Completed', 'Allocation Completed'),
15
('Applied on app','Applied on app')
16
)
17
18
19
name = models.CharField(max_length=254, null=True, blank=True)
20
mobile = models.CharField(max_length=20,unique=True,null=True, blank=True)
21
city = models.ForeignKey(City, models.CASCADE, verbose_name='City', null=True, blank=True)
22
age = models.PositiveIntegerField(null=True, blank=True)
23
status = models.CharField(max_length = 255,choices=STATUS_CHOICES, null=True, blank=True)
24
forms.py
JavaScript
1
5
1
class TempDriverForm(forms.ModelForm):
2
class Meta:
3
model= Tempdriver
4
fields='__all__'
5
views.py
JavaScript
1
10
10
1
def edit_temp_driver(request,id=0):
2
tempdr=Tempdriver.objects.get(pk=id)
3
form= TempDriverForm(request.POST or None, request.FILES or None, instance=tempdr)
4
if form.is_valid():
5
edit = form.save(commit=False)
6
edit.save()
7
messages.success(request,'Driver data updated successfully!')
8
return redirect('/fleet/tempdr')
9
return render(request, 'hiringprocess/edit_tempdriver.html', {'form':form})
10
Advertisement
Answer
First, let me to ask, why you use BaseModel
instead of `models.Model’ ?(just for my information, i just wanted to ask in a comment, but i’m not permmited)
If i understand your question correctly, your function edit_temp_driver
would be something like this:
JavaScript
1
23
23
1
def create_hiring_object(form):
2
try:
3
obj = Hiring()
4
obj.name = form.cleaned_data['name']
5
obj.mobile = form.cleaned_data['mobile']
6
obj.status = obj.STATUS_CHOICES[4]
7
obj.save()
8
except Exception as err:
9
# return error
10
return err
11
12
def edit_temp_driver(request,id=0):
13
tempdr=Tempdriver.objects.get(pk=id)
14
form= TempDriverForm(request.POST or None, request.FILES or None, instance=tempdr)
15
if form.is_valid():
16
edit = form.save(commit=False)
17
# call to create hiring
18
create_hiring_object(form)
19
edit.save()
20
messages.success(request,'Driver data updated successfully!')
21
return redirect('/fleet/tempdr')
22
return render(request, 'hiringprocess/edit_tempdriver.html', {'form':form})
23