2014-03-04 5 views
0

저는이 문제에 상당히 혼란 스럽습니다. 나는 Task Tracking 시스템을 가지고 일하고 있는데, 클라이언트 객체를 추가하거나 업데이트 한 후에는 클라이언트 측 웹 사이트에서 새로 고쳐지지 않는다. 그러나 관리 사이트에서 그들은 거기에있다.Django가 데이터베이스 값을 올바르게 읽지 못합니다.

문제는 내 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

는 아마도 관련 데이터는 object_list''에있다. 어떻게 그것을 템플릿에 전달하고 있습니까? –

+0

나는 object_list % {o}} {% endfor %}에서 {% for o와 같은 것을 가지고있는 간단한 테스트 템플릿을 만들었고이 뷰에는 업데이트가 표시되지 않았지만 일반적인 ListView에는 업데이트/추가 – awwester

답변

0

object_list은 클래스 수준에서는 정의하지 말아야하지만 queryset 또는 model입니다.

+0

내가 할 때 슈퍼 (TaskCreateView, 자기) .get_context_data (** kwargs) 실패합니다. super에서 ListView를 치고 실패하고 있습니다 : queryset = kwargs.pop ('object_list', self.object_list) 어쩌면 컨텍스트 데이터가 잘못되었을 수 있습니까? – awwester

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 
관련 문제