Python 如何更改列表项的视图
我正在使用Django,在我的models.py中,我创建了一些列表。我的项目是关于汽车进出控制。因此,我创建了一个特定的列表,当用户请求一辆车时,它有以下状态:“等待、确认或拒绝”。我需要知道在某些事件发生时如何更改这些状态,例如请求被拒绝或批准 这是my models.py代码的一部分:Python 如何更改列表项的视图,python,html,django,Python,Html,Django,我正在使用Django,在我的models.py中,我创建了一些列表。我的项目是关于汽车进出控制。因此,我创建了一个特定的列表,当用户请求一辆车时,它有以下状态:“等待、确认或拒绝”。我需要知道在某些事件发生时如何更改这些状态,例如请求被拒绝或批准 这是my models.py代码的一部分: SITUATION = [ ("WAITING", "WAITING"), ("DENIED", "DENIED"), ("CONFIRMED", "CONFIRMED") ] class Request
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')
My 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:模型和视图中都有其他类,但我认为这个问题不需要它。您的
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(...)
RequestCar
模型的AnswerRequestForms
aModelForm
是吗?不是,它来自ResponseRequest