发布到UpdateView而不实际显示要提交的模板?

时间:2019-04-08 19:03:58

标签: python django django-forms

我有一个屏幕,显示用户输入的对象。

在此模板表单上,对象旁边有一个按钮-用户单击按钮时,它应更新该对象(将其标记为“完成”,Boolean

我可以在无需实际为UpdateView创建模板的情况下发布到此'UpdateView'吗?

我想我可以发布到基于函数的视图,但是我正在尝试使用ClassBasedViews简化事情。

我有一个CreateView方法,可以正常工作。

class TaskForm(forms.ModelForm):

def __init__(self, *args, **kwargs):
    self.task_location = kwargs.pop('task_location', None)
    super(TaskNeededForm, self).__init__(*args, **kwargs)
    self.fields['task'].queryset = Task.objects.filter(
        id__in=[task_item.task_id for task_item in
                TaskReference.objects.filter(
                    task_location_id=self.task_location,
                )
                ]
            )

class Meta:
    model = TaskNeed
    fields = ['task', 'task_percent', 'task_status']

我的UpdateView看起来像这样:

class TaskNeededUpdate(SuccessMessageMixin, UpdateView):

model = TaskNeeded
fields = ['task', 'task_percent', 'task_status']
success_message = 'Task has been successfully updated.'
template_name = 'tasks/task_needed_form.html' #same form as CreateView

def post(self, request, *args, **kwargs):
    self.object = self.get_object()
    self.object.task_status = True
    self.object.save()
    return super().post(request, *args, **kwargs)

表单模板如下:

        <form id="update-form" class="" action="" method="post">
            {% csrf_token %}
            <button class="btn bg-danger text-white" type="submit" name="button">Task Complete</button>
        </form>

任务pk通过URL传递:

path('<int:location_id>/task-needed/update/<int:pk>/', views.TaskNeededUpdate.as_view(), name='update_task'),

0 个答案:

没有答案