我正在使用Django,并在我的models.py中创建了一些列表。我的项目是关于汽车出入控制。因此,当用户请求购车时,我创建了一个特定列表,它具有以下状态:“等待,确认或拒绝”。我需要知道在某些事件(例如,请求被拒绝或批准)发生时如何更改这些状态。
这是我的models.py代码的一部分:
SITUATION = [
("WAITING", "WAITING"), ("DENIED", "DENIED"), ("CONFIRMED", "CONFIRMED")
]
class RequestCar (models.Model):
id = models.AutoField (primary_key = True)
secretary = models.CharField (max_length = 15, choices = SECRETARIES)
dateTimeReserve = models.DateTimeField (auto_now_add = True, db_column = 'date_time_reserve')
dateExit = models.DateTimeField (verbose_name = 'Expected Exit Date', db_column = 'exit_date')
exitTime = models.CharField (max_length = 3, verbose_name = 'Expected Exit Time', choices = TIME)
requester = models.CharField (max_length = 50)
email = models.EmailField ()
numPassengers = models.IntegerField (verbose_name = 'Number of Passengers', db_column = 'num_pasage')
reason = models.CharField (max_length = 150)
itinerary = models.CharField (max_length = 50)
expectationTime = models.CharField (max_length = 7, verbose_name = 'What is the expected time of absence?',choices = TIME)
driverAwait = models.CharField (max_length = 3, verbose_name = 'Does the driver wait in place?',choices = DRIVER_AGUARD, db_column = 'driver_guard')
office = models.FileField (verbose_name = 'office', upload_to = 'media /', blank = True)
situation = models.CharField (max_length = 10, choices = SITUATION, default = "WAITING")
class ResponseRequest (models.Model):
id = models.AutoField (primary_key = True)
accepted = models.NullBooleanField ()
car = models.ForeignKey (Car, on_delete = models.CASCADE, db_column = 'car')
driver = models.ForeignKey (Driver, on_delete = models.CASCADE, db_column = 'driver')
request = models.ForeignKey (RequestCar, on_delete = models.CASCADE, db_column = 'request')
我的views.py:
def replyGeneral Request (request, template_name = "answer / reply_request.html"):
form = AnswerRequestForms (request.POST or None, request.FILES or None)
if form.is_valid ():
form.save ()
return redirect ('listGeneral Request')
else:
form = AnswerRequestForms ()
return render (request, template_name, {'form': form})
基本上,我希望当请求被接受时,情况从“正在等待”变为“已确认”。
OBS:模型和视图中都有其他类,但是我认为这个问题不是必需的。
答案 0 :(得分:0)
您的AnswerRequestForms
用于ResponseRequest
,因此在保存时,它返回您刚创建的ResponseRequest
实例:
if form.is_valid():
response_request = form.save()
car_request = response_request.request
car_request.situation = "CONFIRMED"
car_request.save()
return redirect(...)