两周前开始学习 Django python,所以请记住这一点。
我想要的是将数据显示在表单中,并且将以相同的表单进行编辑,例如:
在此处输入图像描述
哪里说:名字姓电子邮件
我希望它从数据库中提取数据并将其写在表单中。
名字 凯文姓氏 克拉克电子邮件 Kevin.clark@gmail.com
依此类推,以此类推。就像它写在下面,它说你创造了这些。因此,一个编辑表单,其中为每组条目写出值。
我希望我已经设法提出了一个明确的问题,据我所知,我不相信这是一个重复的问题,如果是的话,我很抱歉。
操作系统:费多拉IDE:EclipseDjango Python
views.py
def edit(request):
instance = New.objects.all()
data = { "firstName" : "Clark",
"lastName": "Kevin"}
form = NewForm(request.POST) #instance=instance)
print form.instance.firstName
if(form.is_valid()):
instance = form.save(commit=False)
instance.save()
context = {
"object_list" : instance,
"formset" : form,
"instance" : instance
}
return render(request, "secondTry/new.html", context)
models.py
class New(models.Model):
firstName = models.CharField(max_length=50, null=True)
lastName = models.CharField(max_length=50, null=True)
email = models.EmailField()
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)
forms.py
class NewForm(ModelForm):
class Meta:
model = New
fields = [
"firstName",
"lastName",
"email"
]
.html
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<h1>Create a New One</h1>
<form method='post' action=""> {% csrf_token %}
<table>
{{ formset }}
</table>
<input type='submit' value="Submit">
</form>
{{ instance }} {% csrf_token %}
<h2>You Created These</h2>
{% for obj in object_list %}
{{ obj.firstName }}
{{ obj.lastName }}
{{ obj.email }} <br/><br/>
{% endfor %}
</body>
</html>
请注意,我没有在 def edit 中使用所有变量,因为我来回试图解决这个问题,所以它可能有点混乱。
非常感谢大家抽出宝贵时间。
正确理解了您的问题,您只想将初始值显示在表单中?在这种情况下,您正在寻找 https://docs.djangoproject.com/en/1.9/ref/forms/api/#dynamic-initial-values
创建 Form
的实例时,执行类似 name_form = Form(request.POST, initial=db_instance)
的操作假设您的编辑视图已经以某种方式从数据库加载实例。