检索和呈现通过Django forms API提供的数据

检索和呈现通过Django forms API提供的数据,django,forms,Django,Forms,我已经用Django准备了一份基本的联系表格。数据保存成功。但是我想将保存的数据(所有db列)检索为html表,并将其显示在我的站点上(而不是在管理界面中) 模型如下: class ContactForm(forms.Form): name = forms.CharField(label='Your name') place = forms.CharField(max_length=100,label='Your place') message = forms.CharF

我已经用Django准备了一份基本的联系表格。数据保存成功。但是我想将保存的数据(所有db列)检索为html表,并将其显示在我的站点上(而不是在管理界面中)

模型如下:

class ContactForm(forms.Form):
    name = forms.CharField(label='Your name')
    place = forms.CharField(max_length=100,label='Your place')
    message = forms.CharField(label='Your message')
    url = forms.URLField(label='Your Web site', required=False)
    options = forms.BooleanField(required=False)
    day = forms.DateField(initial=datetime.date.today)
视图只接受post数据并重定向到“感谢”页面


我尝试执行了
ContactForm.objects.all()
,但得到的错误是:
ContactForm的objects属性不存在

听起来您需要创建一个。django模型描述了一个数据库表,并创建了用python处理该表的功能。如果要保存数据,则需要将其保存在数据库中,并且需要一个模型

试试像这样的东西-

from django.db import models

class Contact(models.Model):
    name = models.CharField(label='Your name', max_length=128)
    place = models.CharField(max_length=100,label='Your place')
    message = models.CharField(label='Your message', max_length=128)
    url = models.URLField(label='Your Web site', required=False)
    options = models.BooleanField(required=False)
    day = models.DateField(initial=datetime.date.today)
然后,不要创建从
form
继承的表单,而是要从
ModelForm
继承(有关模型表单的更多信息,请参阅)。它应该非常简单,因为您的所有字段都已经在模型上进行了描述-

from django.forms import ModelForm

class ContactForm(ModelForm):
    class Meta:
        model = Contact

您需要一个处理保存表单()的视图。然后,您将能够执行
Contact.objects.all()
,并按照Cathy答案中的示例显示它。或者,请查看-一个用于显示表格的有用插件。

views.py

def view_name (request):
    contacts = Contact.objects.all()
    return render(request, 'page.html', {
        'contacts': contacts
    })
html

<html>
    ....

    <body>
        <table>
        {% for contact in contacts %}
            <tr>
                <td>{{contact.name}}</td>
                <td>{{contact.place}}</td>
                <td>....</td>
                <td>....</td>
            </tr>
        {% endfor %}
        </table>
    </body>
</html>

....
{contacts%%中的联系人为%s}
{{contact.name}
{{contact.place}
....
....
{%endfor%}
您可以在模型上而不是表单上调用objects.all()。你能给你的问题加上型号代码吗?