2016-12-28 82 views
0

前引用了我的模型稱爲模板在我的models.py文件局部變量「模板」分配

class template(models.Model): 
    id = models.AutoField(primary_key=True) 
    customer_id = models.ForeignKey(customer,on_delete=models.CASCADE) 
    name = models.CharField(max_length=255,blank=False,null=False) 
    data = RichTextField() 

    def __unicode__(self): 
     return self.name 

    def __str__(self): 
     return self.name 

    def get_absolute_url(self): 
     return reverse("templatedetail",kwargs={"id": self.id}) 

然後我導入此模型在我的views.py

from .models import template 

然後當我嘗試獲取方法中的所有對象

def assign_user_template(request,email=None): 
    if 'credentials' not in request.session: 
     return redirect('/oauth2callback/') 

    credentials = client.OAuth2Credentials.from_json(request.session['credentials']) 
    if credentials.access_token_expired: 
     return redirect('/oauth2callback/') 
    else: 
     http = httplib2.Http() 
     http = credentials.authorize(http) 
     user_service = build('admin','directory_v1',http=http) 
     user_profile = user_service.users().get(userKey=email).execute() 
     user_profile_email = user_profile.get('primaryEmail') 
     user_profile_service = build('oauth2', 'v2', http=http) 
     user_info = user_profile_service.userinfo().get().execute() 
     user_email = user_info.get('email') 
     admin_service = build('admin','directory_v1',http=http) 
     admin_profile = admin_service.users().get(userKey=user_email).execute() 
     customer_id = admin_profile.get('customerId') 
     templates = template.objects.filter(customer_id = customer_id) 
     template_user_object = template_user_map.objects.filter(user_email = email) 
     if template_user_object: 
      template_user_object = template_user_map.objects.get(user_email = email) 
      template_user = template_user_object.template_id    
     else: 
      template_user = None 
     if request.method == 'POST': 
      form = TemplateSelectForm(request.POST) 
      if form.is_valid(): 
       template = form.cleaned_data['selected_template'] 
       user_template_map_object = template_user_map(user_email=user_profile_email,template_id=template) 
       user_template_map_object.save() 
       user_profile = user_service.users().get(userKey=user_profile_email).execute() 
       customer_id = user_profile.get('customerId') 
       customer_object = customer.objects.get(id = customer_id) 
       //some code 
       return HttpResponseRedirect('/userlist/') 
     else: 
      form = TemplateSelectForm() 
     return render(request,'assign_user_template.html',{"form":form}) 

但我在分配之前引用了本地變量'template'錯誤。模型以正確的方式導入。當我在不同的模型上嘗試這個時,它不會給出任何錯誤。

完全回溯

Traceback: 

File "C:\Users\User\Desktop\New folder (6)\final\lib\django\core\handlers\exception.py" in inner 
    39.    response = get_response(request) 

File "C:\Users\User\Desktop\New folder (6)\final\lib\django\core\handlers\base.py" in _get_response 
    187.     response = self.process_exception_by_middleware(e, request) 

File "C:\Users\User\Desktop\New folder (6)\final\lib\django\core\handlers\base.py" in _get_response 
    185.     response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "C:\Users\User\Desktop\New folder (6)\final\dashboard\views.py" in assign_user_template 
    675.   templates = template.objects.filter(customer_id = customer_id) 

Exception Type: UnboundLocalError at /edituser/[email protected]/assigntemplate/ 
Exception Value: local variable 'template' referenced before assignment 
+3

將模型名稱更改爲模板中的模板。遷移並檢查 –

+0

這種方法裏面有很多代碼。我不認爲最好把所有的代碼放在這裏,但我有另一個叫做客戶的模型,但是當我嘗試加載所有的客戶對象時,它的工作很完美。 –

+2

沒有完整的代碼就無法回答。請把代碼放在這裏。 – Thereissoupinmyfly

回答

1
​​

我認爲它的名字與類模板碰撞。蓋上所有課程。

+0

這是確切的問題。在我改變名字後,現在它的工作。謝謝 –

+1

@Bravin如何接受它XD – Bobby