Hi i'm Kevin and i'm new in python and django
-- i want if one between student suggestion and staff suggestion's status == "approved"
that data to be sent in appointment model
my models are:
statuses=[
('accepted','Approve'),
('denied','deny'),
('canceled','cancel'),
]
class studentsuggestion(models.Model):
student = models.ForeignKey(student, default=None, on_delete=models.CASCADE)
lecture = models.ForeignKey(staffs, on_delete=models.CASCADE)
suggestion_date = models.DateField(default=None,blank=True)
suggestion_hour = models.TimeField(default=None,null=True, blank=True)
student_reason = models.TextField(max_length=1000, blank=True)
status = models.CharField(max_length=9, default=None, choices=statuses, null=True, blank=True)
suggested_date = models.DateTimeField(auto_now_add=True)
objects = studentsuggstmanager()
def __str__(self):
return self.student.user.username
def get_absolute_url(self):
return reverse('suggestion_detail', kwargs = {'pk':self.pk})
class staffsuggestion(models.Model):
auhtor = models.ForeignKey(staffs, related_name='stasuggestion', default=None, on_delete=models.CASCADE)
studentsuggestion = models.ForeignKey(studentsuggestion, default=None, on_delete=models.CASCADE)
suggestion_date = models.DateField(default=None,blank=True)
suggestion_hour = models.TimeField(default=None,null=True, blank=True)
end_time = models.TimeField(default=None,null=True, blank=True)
staff_reason = models.TextField(max_length=1000, blank=True)
status = models.CharField(max_length=9, default=None, choices=statuses, null=True, blank=True)
suggested_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.studentsuggestion
class appointment(models.Model):
staffsuggestion = models.ForeignKey(staffsuggestion, default=None, null=True, on_delete=models.CASCADE)
studentsuggestion = models.ForeignKey(studentsuggestion, default=None,null=True, on_delete=models.CASCADE)
suggestion_date = models.DateField(default=None,blank=True)
suggestion_hour = models.TimeField(default=None,null=True, blank=True)
end_time = models.TimeField(default=None,null=True, blank=True)
reason = models.TextField(max_length=1000)
status = models.CharField(max_length=9, default=None, null=True, choices=statuses, blank=True)
requested_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
if staffsuggestion is not None:
return self.staffsuggestion
else:
return self.studentsuggestion
my views.py
class studentsuggestionreact(UpdateView):
model = studentsuggestion
template_name = 'auth/mine/reaction.html'
fields = ['status']
def form_valid(self, form):
self.object = form.save(commit = False)
if self.object.status == 'approve':
studentsuggestion = self.object.student
suggestion_date = self.object.suggestion_date
suggestion_hour = self.object.suggestion_hour
reason = self.object.student_reason
status = self.object.status
get_values = appointment.objects.get_or_create( studentsuggestion=studentsuggestion,
suggestion_date=suggestion_date, suggestion_hour=suggestion_hour, reason=reason,
status=status).save()
get_values.save()
self.object.save()
return redirect("suggestion_list")
elif self.object.status == 'canceled':
self.object.save()
return redirect("suggestion_list")
elif self.object.status == 'denied':
self.object.save()
return redirect("suggestion_list")
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/295dc8e8-8393-46f1-b221-ea45f4fea32f%40googlegroups.com.
No comments:
Post a Comment