在表单中打印模型的值并编辑它们 Django
Print the values of a model in a form and edit them Django
一两周前开始学习 Django python,所以请记住这一点。
我想要的是数据以表格形式显示,并以相同的形式进行编辑,例如:
上面写着:
名
姓
电子邮件
我希望它能从数据库中提取数据并将其写入表格中。
名字凯文
姓 克拉克
电子邮件 Kevin.clark@gmail.com
每个条目依此类推。
就像它在下面写下的那样,它说你创造了这些。
所以一个编辑表单,其中为每组条目写出值。
我希望我已经设法提出了一个明确的问题,据我所知我不相信它是重复的,如果是,我很抱歉。
OS:软呢帽
IDE:Eclipse
姜戈 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)
的操作
假设您的编辑视图已经以某种方式从数据库加载实例。
一两周前开始学习 Django python,所以请记住这一点。
我想要的是数据以表格形式显示,并以相同的形式进行编辑,例如:
上面写着: 名 姓 电子邮件
我希望它能从数据库中提取数据并将其写入表格中。
名字凯文 姓 克拉克 电子邮件 Kevin.clark@gmail.com
每个条目依此类推。 就像它在下面写下的那样,它说你创造了这些。 所以一个编辑表单,其中为每组条目写出值。
我希望我已经设法提出了一个明确的问题,据我所知我不相信它是重复的,如果是,我很抱歉。
OS:软呢帽 IDE:Eclipse 姜戈 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)
的操作
假设您的编辑视图已经以某种方式从数据库加载实例。