Python Django表单:同一模型中HTML表单字段和forms.py字段的组合

Python Django表单:同一模型中HTML表单字段和forms.py字段的组合,python,html,django,forms,python-2.7,Python,Html,Django,Forms,Python 2.7,我的应用程序有一个表单,它要求我在成功登录后使用从用户Twitter帐户提取的信息预先填写表单字段中的某些值。以下是用户从其Twitter帐户成功登录后我的表单的外观(“名称”字段预先填充了与用户Twitter帐户关联的全名): models.py from django.db import models from django.core.validators import RegexValidator from django.contrib.auth.models import User

我的应用程序有一个表单,它要求我在成功登录后使用从用户Twitter帐户提取的信息预先填写表单字段中的某些值。以下是用户从其Twitter帐户成功登录后我的表单的外观(“名称”字段预先填充了与用户Twitter帐户关联的全名):

models.py

from django.db import models
from django.core.validators import RegexValidator
from django.contrib.auth.models import User

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)
    GENDER_CHOICES = (('M', 'Male'), ('F', 'Female'), ('U', 'Unisex/Parody'))
    gender = models.CharField(choices=GENDER_CHOICES, max_length = 128)
HTML

请注意,我已将
全名
属性包含在我的
models.py
中,但已将其从
forms.py
中排除。我在HTMl页面中包含了
名称
字段,如下所示:

NAME: <input type = "text" name = "name" value = "{{user.get_full_name}}"><br> 
现在,我希望
Name
字段值与所有其他表单字段值一样存储在数据库中。但是,除了
全名
属性外,所有其他表单属性都会在提交表单时存储在数据库中

我想我没有在视图中正确地捕获HTML页面中的
名称
表单字段值。有什么解决办法吗

编辑1:

根据一位评论员的建议,我在
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.user.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)
但是,我现在遇到以下错误:

'WSGIRequest' object has no attribute 'get_full_name'

这里似乎出了什么问题?

我真的不明白你为什么不在表单上像所有其他字段一样设置
全名
字段,并将名称值作为初始数据传递。如何将Twitter登录后从用户对象获得的名称值作为默认值传递到forms.py中的“full_name”属性中?这似乎与Twitter无关。您将从
request.user
获取全名,并将其传递到模板中;您可以用完全相同的方式将其传递到else块中的初始数据:
form=EvangelizedForm(initial={'full\u name':request.user.get\u full\u name()})
@DanielRoseman我尝试在else块中添加它,但遇到错误。我已经编辑了我的原始帖子以包含错误。一定要看一看。我真的不明白你为什么不像其他人一样在表单上设置
full\u name
字段,并将名称值作为初始数据传递。如何将Twitter登录后从用户对象获得的名称值作为默认值传递到forms.py中的“full_name”属性中?这似乎与Twitter无关。您将从
request.user
获取全名,并将其传递到模板中;您可以用完全相同的方式将其传递到else块中的初始数据:
form=EvangelizedForm(initial={'full\u name':request.user.get\u full\u name()})
@DanielRoseman我尝试在else块中添加它,但遇到错误。我已经编辑了我的原始帖子以包含错误。一定要看一看。
def fillform(request):

    if request.method == 'POST':
        form = EvangelizedForm(request.POST)
        if form.is_valid():
            form.full_name = request.POST['name']
            form.save(commit=True)
            return index(request)
        else:
            form.errors
    else:
        form = EvangelizedForm()

    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)
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.user.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)
'WSGIRequest' object has no attribute 'get_full_name'