Python 将记录从数据库显示到模板
嗨,我正在建立一个项目,其中有一个登录用户提交的表单,因此用户可以提交表单多次我使用ForeignKey。 现在,我正在努力显示与用户关联的所有记录。 例如:用户“abc”有填写表单,他再次来填写表单,所以我想在我的模板中显示用户abc的表单详细信息,我缺少django的新内容Python 将记录从数据库显示到模板,python,django,django-models,django-views,django-templates,Python,Django,Django Models,Django Views,Django Templates,嗨,我正在建立一个项目,其中有一个登录用户提交的表单,因此用户可以提交表单多次我使用ForeignKey。 现在,我正在努力显示与用户关联的所有记录。 例如:用户“abc”有填写表单,他再次来填写表单,所以我想在我的模板中显示用户abc的表单详细信息,我缺少django的新内容 views.py def PostTest(request): if request.method == 'POST': test = UserTest() test.user
views.py
def PostTest(request):
if request.method == 'POST':
test = UserTest()
test.user = request.user
test.name = request.POST['name']
test.email = request.POST['email']
test.location = request.POST['location']
test.time = request.POST['time']
test.save()
return render(request, 'posts/test.html')
因此,我希望在用户多次填写表单时,在我的模板中归档该位置,因此我希望在django模板中保存该用户的所有位置,某些循环可能会起作用,但新手不知道如何使用它。您需要迭代用户保存的所有表单,因此,要么在渲染的上下文中从views.py文件发送它们,要么在模板本身中获取它们
def PostTest(request):
if request.method == 'POST':
test = UserTest()
test.user = request.user
test.name = request.POST['name']
test.email = request.POST['email']
test.location = request.POST['location']
test.time = request.POST['time']
test.save()
submitted_form = UserTest.objects.filter(user=request.user)
return render(request, context={'forms': submitted_form}, 'posts/test.html')
在html文件中
{% for form in forms %}
{{ form.location }}
{% endfor %}
如果
UserTest
和User
之间存在外键关系,请查看Django的文档,以便更好地理解,如下所示:
class UserTest(models.Model)
user = models.ForeignKey(User)
{% for ut in user.usertest_set.all %}
{{ ut.location }}
{% endfor %}
然后,您可以简单地获得如下位置数据:
class UserTest(models.Model)
user = models.ForeignKey(User)
{% for ut in user.usertest_set.all %}
{{ ut.location }}
{% endfor %}
我正在使用
User
和UserTest
模型进行此查询。除非您明确地将其设置为其他类型,否则反向关系描述符名为UserTest\u set
,而不是UserTest
。不相关,但您自己做(以及您的用户和维护此应用程序的人)一个优点:使用模型表单-用户输入必须经过清理和验证。