在django模型上插入一列

时间:2011-03-06 07:45:04

标签: django django-models django-forms

我正在编写一个小型调查应用程序,主模型看起来像这样:

class survey(models.Model):
    ip_address = models.IPAddressField()
    question1 = models.IntegerField()
    question2 = models.IntegerField()
    question3 = models.IntegerField()

我还有一个如下所示的模型:

class countingForm(forms.ModelForm):
    question1 = forms.ChoiceField()
    question2 = forms.ChoiceField()
    question3 = forms.ChoiceField()

    class Meta:
        model=survey
        exclude=['ip_address']

我想记录提交每个表单的人的IP地址,但我不确定如何在模型返回后添加它。例如,这不起作用:

form.cleaned_data['ip_address']=request.META['REMOTE_ADDR']
form.save()

我宁愿不将IP地址添加为隐藏字段。建议?

1 个答案:

答案 0 :(得分:3)

obj = form.save(commit=False)
obj.ip_address = request.META['REMOTE_ADDR']
obj.save()

在单独的注释中,请求可能没有REMOTE_ADDR字段,因此您应该检查您的具体安装。