我正在定义正则表达式以捕获url中的参数,如教程中所述.如何从URL中访问参数作为HttpRequest对象的一部分?我HttpRequest.GET当前返回一个空QueryDict对象.
我想学习如何在没有库的情况下这样做,这样我就能更好地了解Django.
我希望能够在页面模板中访问某人放置在GET变量中的一些信息(当然是HTML转义.)我将如何进行此操作?我知道你可以通过视图获取这些信息,但在这种情况下,我宁愿处理HTML方面.
我在收到请求时收到此错误,而不是在发布请求期间收到此错误.
错误:-
/ StartPage /的MultiValueDictKeyError
Run Code Online (Sandbox Code Playgroud)"Key 'username' not found in <QueryDict: {}>"请求方法:GET请求URL:
Run Code Online (Sandbox Code Playgroud)http://127.0.0.1:8000/StartPage/Django版本:1.4异常类型:MultiValueDictKeyError异常值:
"密钥'用户名'未找到"
views.py
from django.shortcuts import render_to_response
from django.views.decorators.csrf import csrf_exempt
from django.template import Context, RequestContext
@csrf_exempt
def main_page(request):
return render_to_response('main_page.html')
@csrf_exempt
def Start_Page(request):
if request.method == 'POST':
print 'post', request.POST['username']
else:
print 'get', request.GET['username']
variables = RequestContext(request,{'username':request.POST['username'],
'password':request.POST['password']})
return render_to_response('Start_Page.html',variables)
Run Code Online (Sandbox Code Playgroud)
urls.py
from polls.views import *
urlpatterns = patterns('',
# Examples:
url(r'^$', main_page),
url(r'^StartPage/$', Start_Page)
Run Code Online (Sandbox Code Playgroud)
main_page.html
<html>
<head>
</head>
<body>
This is …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Django 为我的应用程序的博客部分创建一个评论系统。我试图将我的详细视图与表单 mixin 混合在一起,但我有点挣扎。提交表单后,不会保存,也不会出现错误。如果你们中的任何人可以提供帮助,我将不胜感激。
这是我的观点
class DetailPostView(FormMixin, DetailView):
model = Post
template_name = "blog/post_detail.html"
context_object_name = "posts"
form_class = CommentForm
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["form"] = CommentForm
return context
def post(self, request, *args, **kwargs):
self.object = self.get_object()
form = self.get_form()
if form.is_valid():
return self.form_valid(form)
else:
return self.form_invalid(form)
def get_success_url(self):
return reverse("post-detail", kwargs={"pk": self.object.pk})
Run Code Online (Sandbox Code Playgroud)
该模型
class Comment(models.Model):
comment = models.ForeignKey(Post, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
content = models.TextField()
author = models.CharField(max_length=50)
created_on = models.DateTimeField(auto_now_add=True)
class Meta:
ordering = ["-created_on"] …Run Code Online (Sandbox Code Playgroud) 假设我要传递的参数被调用printdata,并且printdata=['a', 'b', 'c'].
我"input type="hidden" name="alist" value={{printdata}}>"用来传递参数.但是,当我尝试使用以下代码检索views.py中的参数时:
params = request.POST
Run Code Online (Sandbox Code Playgroud)
params["alist"]等于['a',而不是['a', 'b', 'c'].我怀疑django使用了标识参数的结尾,.
您是否有任何建议或任何其他方法来传递参数?
有什么办法可以从Django请求中获取所有表单名称?
<input type="text" name="getrow">
Run Code Online (Sandbox Code Playgroud)
HTML请求
def demoform(request):
if request.method=="POST"
inputtxt=request.POST.get("getrow")
return HttpResponse(...)
Run Code Online (Sandbox Code Playgroud)
在上面我只能从name我知道的那里得到,我需要的是获取Django请求的所有名称,然后解析它并获取数据。