如何更改列表项的视图

时间:2019-08-30 14:24:46

标签: python html django

我正在使用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:模型和视图中都有其他类,但是我认为这个问题不是必需的。

1 个答案:

答案 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(...)