- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试将用户给出的值从一个页面重定向到下一个页面。一切都可以在一个 View 中完成,但是当我尝试使用 HttpResponseRedirect 重定向到下一个 View 时,Django 返回错误“NameError at/search_results, name '' is not Define”。如何将“文本”值从一个 View 传递到另一个 View (传递到我的搜索结果)
我的views.py(效果很好,用户在一个字段中给出的值,从django-filters返回相应的cure结果)
def test_views(request):
form = MeanForm(request.POST)
if form.is_valid():
text = form.cleaned_data['name']
else:
text = None
search_users = SearchWoman(request.GET, queryset=Woman.objects.all().filter(city=text))
context = { 'form': form, 'text': text, 'filter': search_users }
return render(request, 'test.html', context)
我的test.html
<h1>TEST_1</h1>
<form method="POST" class="post-form">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default">Submit</button>
</form>
<h2> {{ text }} </h2>
<h1><br></br></h1>
{% for profile in filter.qs %}
<li>{{ profile.name }} </li>
{% endfor %}
我的过滤器.py
from .models import Woman
import django_filters
class SearchWoman(django_filters.FilterSet):
class Meta:
model = Woman
fields = ['city', 'rating']
我的 forms.py
from django import forms
from .models import Mean
class MeanForm(forms.ModelForm):
class Meta:
model = Mean
fields = ('name',)
我如何尝试进行重定向(它返回错误“NameError at/search_results, nazwa”“未定义”)
def test_views(request):
form = MeanForm(request.POST)
if form.is_valid():
text = form.cleaned_data['name']
return HttpResponseRedirect('/search_results/')
else:
text = None
context = { 'form': form, 'text': text, }
return render(request, 'test.html', context)
def search_results(request):
search_users = SearchWoman(request.GET, queryset=Woman.objects.all().filter(city=text))
context = { 'search_user': search_users }
return render(request, 'search_results.html', context)
模板错误(应用第二个 View 后)
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/search_results/
Django Version: 2.1.3
Python Version: 3.7.0
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'host_app',
'django_filters']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "C:\Users\tymot\Desktop\agencja_modeli_modelek\env\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\tymot\Desktop\agencja_modeli_modelek\env\lib\site-packages\django\core\handlers\base.py" in _get_response
126. response = self.process_exception_by_middleware(e, request)
File "C:\Users\tymot\Desktop\agencja_modeli_modelek\env\lib\site-packages\django\core\handlers\base.py" in _get_response
124. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\tymot\Desktop\agencja_modeli_modelek\app_rama\host_app\views.py" in search_results
59. search_users = SearchWoman(request.GET, queryset=Woman.objects.all().filter(city=text))
Exception Type: NameError at /search_results/
Exception Value: name 'text' is not defined
**编辑:错误代码:**
Environment:
Request Method: POST
Request URL: http://127.0.0.1:8000/test/
Django Version: 2.1.3
Python Version: 3.7.0
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'host_app',
'django_filters']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "C:\Users\tymot\Desktop\agencja_modeli_modelek\env\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\tymot\Desktop\agencja_modeli_modelek\env\lib\site-packages\django\core\handlers\base.py" in _get_response
126. response = self.process_exception_by_middleware(e, request)
File "C:\Users\tymot\Desktop\agencja_modeli_modelek\env\lib\site-packages\django\core\handlers\base.py" in _get_response
124. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Users\tymot\Desktop\agencja_modeli_modelek\app_rama\host_app\views.py" in test_views
50. return HttpResponseRedirect(reverse('search_results', args=[text]))
File "C:\Users\tymot\Desktop\agencja_modeli_modelek\env\lib\site-packages\django\urls\base.py" in reverse
90. return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
File "C:\Users\tymot\Desktop\agencja_modeli_modelek\env\lib\site-packages\django\urls\resolvers.py" in _reverse_with_prefix
622. raise NoReverseMatch(msg)
Exception Type: NoReverseMatch at /test/
Exception Value: Reverse for 'search_results' not found. 'search_results' is not a valid view function or pattern name.
URLS 应用程序
from django.conf.urls import url
from .import views
app_name = 'host_app'
urlpatterns = [
[...]
url(r'^test/$', views.test_views, name='test_views'),
url(r'^search_results/(?P<text>[\w\-]+)/$', views.search_results, name='search_results')
]
URLS Rama(位于 settings.py 旁边)
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('host_app.urls', namespace='host_app')),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
最佳答案
由于您使用的是 django-filters,因此将数据放入重定向的查询参数中是有意义的。
from django.utils.http import urlencode
from django.urls import reverse
from django.http import HttpResponseRedirect
def test_views(request):
city, rating = 'Springfield', 11 # or get them from a form
query_string = urlencode({'city': city, 'rating': rating})
next_url = '{}?{}'.format(reverse(search_results), query_string)
return HttpResonseRedirect(next_url)
def search_results(request):
search_users = SearchWoman(request.GET)
# when redirected, the url and request.GET contains data from previous view
return render(request, 'search_results.html', {'search_users': search_users})
传递数据的另一种方法是使用 session 对象。这要求django的 session 中间件处于事件状态并且客户端使用cookie。两者都是标准的,因此它应该适用于典型的网站。
from django.urls import reverse
from django.http import HttpResponseRedirect
def test_views(request):
city = 'Springfield'
request.session['city'] = city # set session['city']
return HttpResonseRedirect(reverse(search_results)
def search_results(request):
city = request.session.get('city') # get session['city']
data = request.GET.dict() # get url query parameters if any
if city:
data['city'] = city
search_users = SearchWoman(data)
return render(request, 'search_results.html', {'search_users': search_users})
session 易于使用。如果您想了解有关 session 如何工作的更多信息,请阅读 django 文档的这一部分:How to use sessions
关于python - 将用户值从一个模板重定向到另一个模板 - Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53238340/
在为 Web 应用程序用例图建模时,为用户可以拥有的每个角色创建一个角色是否更好?或拥有一个角色、用户和一个具有特权的矩阵? guest < 用户 < 版主 < 管理员 1: guest 、用户、版主
我无法使用 Elixir 连接到 Postgres: ** (Mix) The database for PhoenixChat.Repo couldn't be created: FATAL 28P
这个问题已经有答案了: Group by field name in Java (7 个回答) 已关闭 7 年前。 我必须编写一个需要 List 的方法并返回 Map> . User包含 Person
感谢您的帮助,首先我将显示代码: $dotaz = "Select * from customers JOIN contracts where customers.user_id ='".$_SESS
我只想向所有用户中的一个用户显示一个按钮。我尝试了 orderByKey() 但没有成功! 用户模型有 id 成员,我尝试使用 orderByChild("id") 但结果相同! 我什至尝试了以下技巧
我们在工作中从 MongoDB 切换到 Postgres,我正在建立一个 BDR 组。 在这一步,我正在考虑安全性并尽可能锁定。因此,我希望设置一个 replication 用户(角色)并让 BDR
export class UserListComponent implements OnInit{ users; constructor(private userService: UserS
我可以使用 Sonata User Bundle 将 FOS 包集成到 sonata Admin 包中。我的登录功能正常。现在我想添加 FOSUserBundle 中的更改密码等功能到 sonata
在 LinkedIn 中创建新应用程序时,我得到 4 个单独的代码: API key 秘钥 OAuth 用户 token OAuth 用户密码 我在 OAuth 流程中使用前两个。 的目的是什么?最后
所以..我几乎解决了所有问题。但现在我要处理另一个问题。我使用了这个连接字符串: SqlConnection con = new SqlConnection(@"Data Source=.\SQLEX
我有一组“用户”和一组“订单”。我想列出每个 user_id 的所有 order_id。 var users = { 0: { user_id: 111, us
我已经为我的Django应用创建了一个用户模型 class User(Model): """ The Authentication model. This contains the u
我被这个问题困住了,找不到解决方案。寻找一些方向。我正在用 laravel 开发一个新的项目,目前正致力于用户认证。我正在使用 Laravels 5.8 身份验证模块。 对密码恢复 View 做了一些
安装后我正在使用ansible配置几台计算机。 为此,我在机器上本地运行 ansible。安装中的“主要”用户通常具有不同的名称。我想将该用户用于诸如 become_user 之类的变量. “主要”用
我正在尝试制作一个运行 syncdb 的批处理文件来创建一个数据库文件,然后使用用户名“admin”和密码“admin”创建一个 super 用户。 到目前为止我的代码: python manage.
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 6 年前。 Improv
我已在 Azure 数据库服务器上设置异地复制。 服务器上运行的数据库之一具有我通过 SSMS 创建的登录名和用户: https://learn.microsoft.com/en-us/azure/s
我有一个 ionic 2 应用程序,正在使用 native FB Login 来检索名称/图片并将其保存到 NativeStorage。流程是我打开WelcomePage、登录并保存数据。从那里,na
这是我的用户身份验证方法: def user_login(request): if request.method == 'POST': username = request.P
我试图获取来自特定用户的所有推文,但是当我迭代在模板中抛出推文时,我得到“User”对象不可迭代 观看次数 tweets = User.objects.get(username__iexact='us
我是一名优秀的程序员,十分优秀!