在表单中打印模型的值并编辑它们 Django.



两周前开始学习 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) 的操作假设您的编辑视图已经以某种方式从数据库加载实例。

最新更新