如何将值从 html 传递到 django 中查看?
Posted
技术标签:
【中文标题】如何将值从 html 传递到 django 中查看?【英文标题】:how to pass value from html to view in django? 【发布时间】:2020-02-18 05:54:18 【问题描述】:我已经制作了这个 html 代码:
<h3>your major is user.userprofile.major</h3>
这将在网页上正确显示专业,但我想使用此字符串从视图中的另一个表中获取某些内容。
如何将此字符串传递给查看?
编辑: 这是我的观点.py
def dashboardView(request):
obj = BooksFile.objects.all()
query = BooksFile.objects.filter(book_major='cs)
return render(request, 'dashboard.html', 'books': obj, 'major': query)
def registerView(request):
if request.method == "POST":
form = UserCreationForm(request.POST)
profile_form = UserProfileForm(request.POST)
if form.is_valid() and profile_form.is_valid():
user = form.save()
profile = profile_form.save(commit=False)
profile.user = user
profile.save()
return redirect('login_url')
else:
form = UserCreationForm()
profile_form = UserProfileForm()
context = 'form': form, 'profile_form': profile_form
return render(request, 'registration/register.html', context)
这是我的模板: % 扩展 'index.html' %
% block content %
<h1>Welcome, user.username</h1>
<h2>Your major is user.userprofile.major</h2>
% for book in books %
<h3>Your book name is book.book_name</h3>
% endfor %
% endblock %
我正在尝试按用户拥有的相应专业显示 bookfile 表中的书名。正确地显示具有“cs”属性的书籍,因为我手动将“cs”放在了 get 函数中。我正在尝试将主要字符串从模板发送到视图,以便我可以将用户的主要内容放在 get 函数中。或者有没有其他方法可以做到。
【问题讨论】:
你能解释更多吗? 显示你的代码你做了什么 @AmitPatel 我正在编辑 【参考方案1】:您需要在模板中使用form
并将其提交给您的view
。即
<form action="your_view_url" method="POST">
<input type="text" name="major" value="user.userprofile.major"/>
<input type="submit"/>
</form>
然后在您看来,您可以通过以下方式访问它:
if request.POST:
major = request.POST.get('major')
根据文档:https://docs.djangoproject.com/en/2.2/topics/forms/
【讨论】:
我不是要保存输入,而只是保存数据库中的一个字符串,我只能在 html 模板中提取该字符串 是的,但这是将其传递给您的视图的一种方式。如果您不希望它可见,请隐藏输入并在需要时使用 javascript 自动提交表单 我可以传递多个值吗?【参考方案2】:首先你要借助queryset获取model的值,放入字典中,然后和模板一起传递。
在视图中:
def get(self, request):
queryset = Model_name.objects.all()
ctx =
'queryset': queryset,
return render(request, 'page_name(or template_name).html', ctx)
在模板中:
<form action="%url'(your_view_name without brackets)'%" method="POST">
% for data in queryset%
<span class="username"><a href="#">data.name(field of your model)</a> .
</span>
<span class="email"><a href="#">data.email(field of your model)</a> .
</span>
% endfor%
</form>
【讨论】:
以上是关于如何将值从 html 传递到 django 中查看?的主要内容,如果未能解决你的问题,请参考以下文章
如何将值从 javascript 函数传递到 django 视图
如何将值从视图传递到不可编辑的字段django python
将值从 fullCalendar 单击传递到 Django 模板