【发布时间】:2013-05-23 17:05:56
【问题描述】:
我想给一些人发链接让我们说:
http://www.example.com/form/?q=example@me.com
如果他们点击链接,它将转到页面 /form/ 包含多个字段的表单。
我想用填充“电子邮件”输入的 q 字符串预填充它
字符串“example@me.com”中带有指定电子邮件的字段。
网站是用 Django 完成的,想问一下最好的方法是什么。
我应该使用 JS、Jquery、Django 吗?不知道从哪里开始。
想要这样的东西:
http://support.unbounce.com/entries/307658-Can-I-pre-populate-a-form-with-URL-parameters-VIDEO-
但在我的网站上。有人可以提供简单的表格和示例吗?
谢谢
models.py
from django.db import models
class Example(models.Model):
username = models.CharField(max_length=200, blank=True)
email = models.CharField(max_length=200)
image = models.ImageField(upload_to='profiles', blank=True)
text = models.CharField(max_length=200, blank=True)
forms.py
from django import forms
from models import Example
class ExampleForm(forms.ModelForm):
class Meta:
model = Example
views.py
from django import forms
from models import Example
from forms import ExampleForm
from django.template import RequestContext, Context
from django.core.context_processors import csrf
from django.shortcuts import render_to_response
from django.shortcuts import render_to_response, get_object_or_404
from django import http
import os
import json
from django.http import HttpResponse
from django.http import HttpResponseRedirect
from django.conf import settings
def index(request):
if request.method == "POST":
form = ExampleForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return http.HttpResponseRedirect('/success/')
else:
form = ExampleForm()
return render_to_response('index.html', {'title': 'Example Form', 'form': form},context_instance=RequestContext(request))
urls.py
from django.conf.urls import patterns, include, url
from django.conf import settings
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', 'signup.views.index', name='index'),
url(r'^admin/', include(admin.site.urls)),
)
索引模板
<form id='add_cat' method='post' enctype="multipart/form-data">{% csrf_token %}
<input id="id_username" maxlength="200" name="username" type="text" placeholder="username">
<input id="id_email" maxlength="200" name="email" type="text" >
<input id="id_picture" maxlength="200" name="picture" type="text">
<textarea id="id_text" row="3" name="first_text" placeholder="Type something…"></textarea>
<input id="add_cat_btn" type='submit' value="save">
</form>
【问题讨论】:
-
如果您遵循与表单中相同的字段名称,则将
request.GET传递为表单中的initial数据。否则收集GET变量并以initial形式适当地传递它们
标签: javascript jquery django forms django-forms