javascript - Django/Jquery/Javascript - 如何使用 url 参数预填充表单(自动填充表单)

标签 javascript jquery django forms django-forms

我想给一些人发送链接让我们说:

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-

但在我的网站上。有人可以提供简单的表格和示例吗?

谢谢

模型.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)

表单.py

from django import forms

from models import Example

class ExampleForm(forms.ModelForm):
    class Meta:
        model = Example

View .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))

网址.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.copy() 会给你一个字典,并将它作为一个初始字典传递。

initial = request.GET.copy()
form = MyForm(initial=initial)

它将填充表单中存在的字段。

如果您可以交替使用 GETPOST

def index(request):

    initial = {}
    if request.GET:
        initial = request.GET.copy()

    form = ExampleForm(initial=initial)

    if request.method == "POST":
        if request.POST:
            initial = request.POST.copy()
        form = ExampleForm(request.POST, request.FILES, initial=initial)
        if form.is_valid():
            form.save()
            return http.HttpResponseRedirect('/success/')


    return render_to_response('index.html', {'title': 'Example Form', 'form': form },context_instance=RequestContext(request))

关于javascript - Django/Jquery/Javascript - 如何使用 url 参数预填充表单(自动填充表单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16796931/

相关文章:

javascript - onclick 触发两次并删除 "attributes"

javascript - 如何处理对象字面量?

javascript - 使用多个复选框的数据表数据过滤(服务器端)

javascript - 使用 jquery 在每次点击时交换 divs 颜色黑色和白色

python - 可以在创建时将字典传递给 django 模型吗?

javascript - 如何将字符串与数组中对象的值进行比较

javascript - 回调函数的新手(将回调作为参数传递)(Javascript)

jquery - 使用关闭按钮扩展 jQuery UI Accordion - 绑定(bind)事件处理程序

python - 覆盖rest-auth注册以向我的后端添加额外的字段

python - 如何使用 Django 和 Python 根据表值授予权限