我有一個用戶提交的表單。他們將填寫前三個字段,然後我想將一個變量同時記錄下來。Django通過表單提交變量
例如: 他們將填寫姓名,出生日期,地址,然後按提交。不過,我也希望在每次提交表單時捕獲IP地址。我使用ipware將IP地址轉換爲views.py中的一個變量。但是,我怎樣才能將這個IP變量與其他字段一起提交。
Views.py
def server_update(request, pk, template_name='servers/server_form.html'):
server = get_object_or_404(Server, pk=pk)
form = ServerForm(request.POST or None, instance=server)
if form.is_valid():
form.save()
return redirect('server_list')
return render(request, template_name, {'form':form})
server_form.html
<form method="post">{% csrf_token %}
<!-- {{ form.as_p }} this brings in the whole form -->
Name <br>
{{ form.name }} <br>
Order <br>
{{ form.order }} <br>
First name <br>
{{ form.first_name }} <br><br>
<input type="submit" value="Submit" />
</form>
<table cellpadding="0" cellspacing="0">
models.py
class Server(models.Model):
name = models.CharField(max_length=200)
order = models.IntegerField()
first_name = models.CharField(max_length=250, blank=True, null=True)
ip = models.CharField(max_length=250, blank=True, null=True)
def __unicode__(self):
return self.name
def get_absolute_url(self):
return reverse('server_edit', kwargs={'pk': self.pk})
任何幫助,將不勝感激。謝謝
當表單呈現時發送ip地址以及表單內部隱藏字段以存儲IP。然後用表單提交得到它 –
感謝@AjayGupta,這似乎是最好的主意。我不是那種熟悉表格的人。我有我的表單字段{{form.ip}}和我的IP變量{{ip}}我怎麼能把這些放在一起,並使表單字段隱藏。謝謝:) – Jimmyn
這是我的表單如何設置在當前類ServerForm(ModelForm): class Meta: model = Server fields = ['name','order','first_name','ip'] – Jimmyn