我有2個視圖...一個用來修改數據庫對象UpdateView
。如果對象不存在,另一個視圖使用CreateView
。如果查詢發現該對象不存在,我正在使用重定向到CreateView。但是,我得到'HttpResponseRedirect' object has no attribute '_meta'
,並找不到原因。Django 1.6 redirect()導致'HttpResponseRedirect'對象沒有屬性'_meta'
class AccountCreateOrModify():
model = Employee
form_class = AccountForm
template_name = 'bot_data/account_modify.html'
success_url = reverse_lazy('home')
class AccountModify(LoginRequiredMixin,
AccountCreateOrModify,
UpdateView):
def get_object(self, queryset=None):
try:
pk = self.request.user.pk
query_set = self.model.objects.get(user_assigned=pk)
return query_set
except Employee.DoesNotExist:
return redirect('account_add/')
class AccountCreateRecord(LoginRequiredMixin,
AccountCreateOrModify,
CreateView):
print "hi"
編輯:我已經修改AccountModify:
class AccountModify(LoginRequiredMixin,
AccountCreateOrModify,
UpdateView):
def dispatch(self, request):
try:
pk = self.request.user.pk
query_set = Employee.objects.get(user_assigned=pk)
return query_set
except Employee.DoesNotExist:
return redirect('account_add')
時沒有記錄其中一期工程。但是,當有一個記錄,我得到
Internal Server Error: /account_modify/
Traceback (most recent call last):
File "/home/one/.virtualenvs/bot/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 201, in get_response
response = middleware_method(request, response)
File "/home/one/.virtualenvs/bot/local/lib/python2.7/site-packages/django/middleware/clickjacking.py", line 30, in process_response
if response.get('X-Frame-Options', None) is not None:
AttributeError: 'Employee' object has no attribute 'get'
您的'AccountCreateOrModify'類是一箇舊式類(不是從'object'下降的)。這可能不是一個好主意。 – lanzz
謝謝,但沒有幫助我的問題 – dman