Django没有正确读取数据库值

时间:2014-03-04 23:08:06

标签: django django-views django-class-based-views

我对这个很难过。我正在使用任务跟踪系统,在添加或更新任务对象后,他们不会在面向客户端的网站上刷新,但在管理站点中他们就在那里。

问题出在我的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。

2 个答案:

答案 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,而应querysetmodel