2015-07-04 66 views
1

我試圖在Django中創建一個表單,其中包含一個表單字段,其中的對象是從User對象中提取的默認值。Django:'AnonymousUser'對象沒有屬性'get_full_name'

forms.py

class EvangelizedForm(forms.ModelForm): 
    #full_name = forms.CharField(help_text="Full Name") 
    email = forms.CharField(help_text="Email ID") 
    mobile_no = forms.CharField(help_text="Mobile number") 
    twitter_url = forms.CharField(help_text="Twitter URL") 

models.py

class Evangelized(models.Model): 
    full_name = models.CharField(max_length=128) 
    email = models.EmailField() 
    mobile_no = models.CharField(unique=True, max_length = 10, validators=[RegexValidator(regex='^\w{10}$', message='Mobile number should be strictly of 10 digits.')]) 
    twitter_url = models.CharField(unique=True, max_length=128) 

views.py

def fillform(request): 
    if request.method == 'POST': 
     form = EvangelizedForm(request.POST) 
     if form.is_valid(): 
      form.save(commit=True) 
      return index(request) 
     else: 
      form.errors 
    else: 
     #form = EvangelizedForm() 
     form = EvangelizedForm(initial={'full_name': request.get_full_name()}) 

    context = RequestContext(request, 
          {'request': request, 
          'user': request.user, 'form':form})  

    #return render(request, 'rango/fillform.html', {'form': form, 'context_instance':context}) 
    return render_to_response('rango/fillform.html', 
          context_instance=context) 

不過,我遇到了以下錯誤:

'AnonymousUser' object has no attribute 'get_full_name' 

這個錯誤意味着什麼,我該如何解決這個錯誤?

回答

5

最有可能你想:

request.user.get_full_name() if request.user.is_authenticated() else "" 
+0

我已經編輯我原來的問題。看一看。 –

+0

請參閱更新的答案 –