2016-12-28 87 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