我对这个很难过。我正在使用任务跟踪系统,在添加或更新任务对象后,他们不会在面向客户端的网站上刷新,但在管理站点中他们就在那里。
问题出在我的TaskCreateView中,但我无法弄清楚原因。我知道这是因为我创建了一个简单的测试TaskListView并显示更新的值。我需要TaskCreateView来显示任务对象以及创建一个新的任务对象。
这是我的代码,希望有人有个主意,因为我已经用完了。
#urls.py
urlpatterns = patterns('',
url(r'^$', TaskCreateView.as_view(), name='task-create'),
...
)
#views.py
class TaskCreateView(MultipleObjectMixin, CreateView):
'''
base create view for tasks
'''
model = Task
form_class = TaskCreateForm
template_name = "flowtask/content/tasks.html"
object_list = Task.objects.all()
success_url = reverse_lazy('task-create')
load_modal = "createTaskModal"
def form_invalid(self, form, **kwargs):
#need to add in the error status and modal to the context_data
context = self.get_context_data(**kwargs)
context['status'] = 'error'
context['load_modal'] = self.load_modal
context['form'] = form
# return super(TaskCreateView, self).form_invalid(form)
return self.render_to_response(context)
def get_context_data(self, **kwargs):
context = super(TaskCreateView, self).get_context_data(**kwargs)
context['create_form'] = self.get_form(self.form_class)
return context
我正在使用Django 1.6和python 3.3。
答案 0 :(得分:1)
从班级定义中移除object_list
并将其移至get_context_data
方法:
def get_context_data(self, **kwargs):
context = super(TaskCreateView, self).get_context_data(**kwargs)
context['create_form'] = self.get_form(self.form_class)
context['object_list'] = Task.objects.all()
return context
答案 1 :(得分:0)
您不应该在班级别定义object_list
,而应queryset
或model
。