私信  •  关注

shen_gan

shen_gan 最近回复了
8 年前
回复了 shen_gan 创建的主题 » 请教一个view问题。

addhostForm 应该是添加和编辑时的共同表单吧。
既然是更新,则也是需要先知道更新对象的信息,也就是说,也需要根据传入的 id 获取数据。然后对此 id 对象更新即可。

其中一个具体操作可以是:

  1. 在 addhostForm 的 save 函数添加一个参数,此参数是需要更新的对象(默认值为 None)
  2. 在 save 函数里面,则是根据更新对象的值是否为 None,对应新添(为 None 时)还是更新(不为 None 时)
8 年前
回复了 shen_gan 创建的主题 » django+easyui datagrid post请求出现403问题

使用 django 的模板时,在每一个 POST form 表单中都需要添加{% csrf_token %},它的值是这样子的:

<input type="hidden" name="csrfmiddlewaretoken" value="plysVEeY1PoO8xOrmLKTAR109pHutKCL">

看下面的引用文章片段:

Django 提供的 CSRF 防护机制

django 第一次响应来自某个客户端的请求时,会在服务器端随机生成一个 token,把这个 token 放在 cookie 里。然后每次 POST 请求都会带上这个 token,

这样就能避免被 CSRF 攻击。

  1. 在返回的 HTTP 响应的 cookie 里,django 会为你添加一个 csrftoken 字段,其值为一个自动生成的 token
  2. 在所有的 POST 表单时,必须包含一个 csrfmiddlewaretoken 字段 (只需要在模板里加一个 tag, django 就会自动帮你生成,见下面)
  3. 在处理 POST 请求之前,django 会验证这个请求的 cookie 里的 csrftoken 字段的值和提交的表单里的 csrfmiddlewaretoken 字段的值是否一样。如果一样,则表明这是一个合法的请求,否则,这个请求可能是来自于别人的 csrf 攻击,返回 403 Forbidden.
  4. 在所有 ajax POST 请求里,添加一个 X-CSRFTOKEN header,其值为 cookie 里的 csrftoken 的值

看第2点,对照着你的问题:“我怎么样才能在easyui-datagrid里面把csrf一起提交?”,
我的回答是: 你可以在 POST 的时候添加一个 csrfmiddlewaretoken 参数,值为 plysVEeY1PoO8xOrmLKTAR109pHutKCL

至于这个值的获取(对于每个django都不一样):

  1. 可以随意看一个 django 模板中的表单,查看对应页面的源代码,即可看到。
  2. 根据引用的第1点,可查看 cookie 中的 csrftoken 字段值。
8 年前
回复了 shen_gan 创建的主题 » 求教django1.7如果使用markdown

来来来,看这里 http://10ns.top/blog/django/django_actual_combat.html#content

8 年前
回复了 shen_gan 创建的主题 » 用django框架做了一个IT聚合阅读网站

赞一个

8 年前
回复了 shen_gan 创建的主题 » 关于url标签的小白问题

虽然不是很明白你说的 url 内建标签~~~

但是我猜测着回答你的问题:

  1. urls.py 中定义 url 时,只能定义到 http://www.baidu.com/123.php/ ,而不能加上后面的参数(?id=username

  2. 一般 url 问号后面的参数可在模板中进行添加,比如 href="{% url 'user_info' %}?id={{ username }}"user_info 就是 http://www.baidu.com/123.php/name

8 年前
回复了 shen_gan 创建的主题 » django 官方 turtorial 关于本地主机的一个问题

你在虚拟机中输入 127.0.0.1:8000 访问,只能在虚拟机中使用浏览器访问。0.0.0.0 是指允许其他主机(ip)访问你的虚拟机。

附上官网一句话:

Note that the default IP address, 127.0.0.1, is not accessible from other machines on your network. To make your development server viewable to other machines on the network, use its own IP address (e.g. 192.168.2.1) or 0.0.0.0 or :: (with IPv6 enabled).

8 年前
回复了 shen_gan 创建的主题 » URL转化问题

其实我一开始就是猜测下面的那个 urlpatterns 是 website.urls 的代码,不知道是不是?

urlpatterns 应该是一个列表,而第2个 urlpatterns 你用了大括号,看看是不是此处的问题

引用官网一句描述

urlpatterns should be a Python list of url() instances.

8 年前
回复了 shen_gan 创建的主题 » URL转化问题

@kour 额,我错了~~~

在3楼中,我的说法有大问题。不是 reversed 而是 reverse 的其中一个用法

reverse('url_name', args=(parm1,))

ps. 此处与本问题无关,只是指出&纠正我的错误~

对于这个问题,我目前的做法是:在视图B中同时赋值模板A和B中的context。

不知道还有没有其它好的方法~~

8 年前
回复了 shen_gan 创建的主题 » URL转化问题

@kour 这个错误应该是 views.py 文件中的错误。reversed 用法如下:

reversed('url_name', args=(parm1,))

看看是不是这个的用法有问题?

8 年前
回复了 shen_gan 创建的主题 » Django分页问题 pagination

@MCC

@fittaoee

虽然我也没有用过对 POST 结果进行分页,但是感觉分页还是应该在 GET 请求上使用,(还是说分页功能不能用在 POST 请求上?)

参考这个: http://www.oschina.net/question/922525_168311

8 年前
回复了 shen_gan 创建的主题 » URL转化问题

在模板中 url 后面直接接 url 的 name

url(r'^restricted/$', views.restricted, name='restricted'),

你如果想要在模板中访问这个 url ,则是 "{% url 'restricted' %}"

8 年前
回复了 shen_gan 创建的主题 » 小白有关post与csrf的问题

看你的模板文件,好像有点问题:没有 <form> 起始标签?

8 年前
回复了 shen_gan 创建的主题 » 关于django模板的问题

@lowkeynic4 不建议你删除这个。删除了你现在没有问题,说不定以后的时候就会出问题了。因为下面还有一些配置你都删了,正确的改法为:

TEMPLATES = [
    {
        #...
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        #...
    }
]
8 年前
回复了 shen_gan 创建的主题 » Django怎么通过checkbox多选删除数据库数据?

@HelloSam 之前做过,用的是 javascript 实现。

  1. 添加一个hidden input

    <input type="hidden" id="id_ids" name="ids" value="">
    
  2. 遍历所有的 checkbox,选出勾选的组成字符串(比如,"value1, value2, value3")。

  3. 然后将此字符串赋值给上面的那个hidden input

  4. 在django视图中就可以通过 request.POST.get('ids') 来获取ids,然后就是 ids = ids.split(',')

  5. 接下来就是删除了~~

8 年前
回复了 shen_gan 创建的主题 » 通过邮件重置密码问题

@mugbya 这个呀,这个是买域名送的邮件服务~~

8 年前
回复了 shen_gan 创建的主题 » 正式推荐我的个人博客。Django 1.8 + Bootstrap 3

@mugbya 第三方登录的博文: http://10ns.top/blog/django/django_oauth_login.html

8 年前
回复了 shen_gan 创建的主题 » 通过邮件重置密码问题

@mugbya 我用的是阿里云的青岛的主机,smtp 没有搭建,直接就可使用

8 年前
回复了 shen_gan 创建的主题 » 通过邮件重置密码问题

@mugbya 应该不是,因为在我自己的网站上,我的账号就是 gmail 注册的,刚测试了一下,可以收到,很快的

8 年前
回复了 shen_gan 创建的主题 » login_required不起作用,为什么?

@HelloSam 浏览器中删除cookie,在你删除浏览器数据的时候可以看到。

在django里面有没有这样的设置我也不知道,但是我不建议你这么做

不过,我觉得你可以添加一个退出登录的链接,然后实现它

8 年前
回复了 shen_gan 创建的主题 » 通过邮件重置密码问题

@mugbya 你在settings.py 中设置了邮件相关的配置了吗?比如

EMAIL_HOST

EMAIL_HOST_USER

EMAIL_HOST_PASSWORD

save函数需要自己写。在form的save函数中可存入数据库

8 年前
回复了 shen_gan 创建的主题 » 怎么实现:渲染的同时,回到本界面?

使用重定向就可以。一般都会在 post 完成后进行重定向

8 年前
回复了 shen_gan 创建的主题 » login_required不起作用,为什么?

@shen_gan 想到一种可能,就是你曾经登录过 admin 后台,可以换个浏览器获取删除此浏览器的 cookie ,然后刷新看看

8 年前
回复了 shen_gan 创建的主题 » login_required不起作用,为什么?

看起来你这个应该没有问题~~~

8 年前
回复了 shen_gan 创建的主题 » 正式推荐我的个人博客。Django 1.8 + Bootstrap 3

@mugbya 源码不是我博客的源码,是教程中xblog的源码,我会一步步的将博客中用到的都加入到xblog中。

这两天就加上第三方登录的介绍和代码

8 年前
回复了 shen_gan 创建的主题 » 正式推荐我的个人博客。Django 1.8 + Bootstrap 3

@小二哥的故事 回复你21楼的问题,这个我也不是很明白~~

8 年前
回复了 shen_gan 创建的主题 » 正式推荐我的个人博客。Django 1.8 + Bootstrap 3

@小二哥的故事

AttributeError: 'NoneType' object has no attribute 'split'

你这个应该是你的代码本身的问题

8 年前
回复了 shen_gan 创建的主题 » 正式推荐我的个人博客。Django 1.8 + Bootstrap 3

@Django中国社区 你看19楼的回复,@18楼的时候,碰到18楼那个特殊的名字,然后就变样了~~

8 年前
回复了 shen_gan 创建的主题 » 正式推荐我的个人博客。Django 1.8 + Bootstrap 3

@--___-weibo

我自己没有用过 python3,但是你参考一下这个吧: http://www.robberphex.com/2013/12/254

8 年前
回复了 shen_gan 创建的主题 » django可以对数据库里原有的表进行修改吗
8 年前
回复了 shen_gan 创建的主题 » django可以对数据库里原有的表进行修改吗

在 models 中添加之后,你需要执行:

$ python manage.py makemigrations
$ python manage.py migrate

这样就可以在数据库中添加修改表字段了。

8 年前
回复了 shen_gan 创建的主题 » 正式推荐我的个人博客。Django 1.8 + Bootstrap 3

@小二哥的故事 @HelloSam

教程代码已经上传至 github

登录页面的样式也已经完善,教程和代码均已发布。欢迎访问

8 年前
回复了 shen_gan 创建的主题 » 正式推荐我的个人博客。Django 1.8 + Bootstrap 3

@hsdtsyl 感谢登录留言,你是第一个留言的,非常感谢

8 年前
回复了 shen_gan 创建的主题 » django关于?后的参数传递问题

看看是不是你的这个index函数没有request这个参数?

8 年前
回复了 shen_gan 创建的主题 » 正式推荐我的个人博客。Django 1.8 + Bootstrap 3

@迷尘乱心 直接用的是 htmltextarea,没有用插件。

8 年前
回复了 shen_gan 创建的主题 » 正式推荐我的个人博客。Django 1.8 + Bootstrap 3

@redfortress 是的

8 年前
回复了 shen_gan 创建的主题 » 正式推荐我的个人博客。Django 1.8 + Bootstrap 3

@小二哥的故事 github 地址:https://github.com/shenxgan/xblog ,后续随着教程的书写,代码也会随之更新。谢谢关注

8 年前
回复了 shen_gan 创建的主题 » 正式推荐我的个人博客。Django 1.8 + Bootstrap 3

@小二哥的故事 可以,最近一段时间就会将xblog源码上传至github

8 年前
回复了 shen_gan 创建的主题 » 关于django模板使用static文件的问题

我来说说:

  1. 执行 collectstatic 一般是在生产环境中使用,将所有的静态文件汇集到你指定的 STATIC_ROOT 目录下。这样做的目的是因为在生产环境(比如我使用 nginx)中一般只会指定一个静态文件路径。

  2. 在开发环境(debug)中,查找静态文件的顺序是:先在 STATICFILES_DIRS 里面找,然后在各个 APP 下的 static 目录下找,有同名的文件不要紧,它只会使用找到的第一个。看看官网描述:https://docs.djangoproject.com/en/1.8/ref/settings/#staticfiles-finders