小编Jin*_*ngo的帖子

两种装饰基于类的视图的方法有什么区别?

我正在编写一个继承自ListView的视图,并试图将视图限制为登录用户.

https://docs.djangoproject.com/en/dev/topics/class-based-views/#decorating-in-urlconf说在URLconf中使用login_required进行装饰"在每个实例的基础上应用装饰器.如果你想要的话要装饰的每个视图实例,你需要采取不同的方法" - 这种方法是在视图代码中装饰调度方法.

我以为我知道一个类和一个实例之间的区别,但这句话对我来说没有任何意义.有人可以澄清吗?除了在URLconf中设置装饰器而不是在类定义中,这两种方法之间有什么区别?

该链接上面的段落似乎回答了这样一个问题:"由于基于类的视图不是函数,因此根据您是使用as_view还是创建子类,装饰它们的工作方式会有所不同."

真??我似乎能够使用我的子类ListView的URLconf方法.

django django-views

5
推荐指数
1
解决办法
695
查看次数

麻烦在unittest中使用django.template上下文

当我使用来自django.template的Context时,我在这里遇到了一些令人困惑的情况.

以下适用于python shell:

>>> from django.template import Context, Template
>>> b=Template('TEST').render(Context())
>>> print b
TEST
Run Code Online (Sandbox Code Playgroud)

当我在单元测试中使用相同的代码时,我得到以下错误:

Traceback (most recent call last):
  File "/newsletterapi/tests.py", line 25, in setUp
    b = Template('TEST').render(Context())
  File "/opt/python2.7/lib/python2.7/site-packages/django/template/base.py", line 121, in render
    context.render_context.push()
AttributeError: 'Context' object has no attribute 'render_context'
Run Code Online (Sandbox Code Playgroud)

unittest看起来像这样:

from django.test import TestCase
from myproject.newsletterapi.models import Newsletter
from django.utils.termcolors import colorize
from django.db import IntegrityError
from django.template import Template, Context
import random
import datetime
from decimal import *
import string


class NewsletterTest(TestCase):

    def setUp(self): …
Run Code Online (Sandbox Code Playgroud)

python django unit-testing django-1.3

4
推荐指数
1
解决办法
767
查看次数

django:如何用空格过滤模型字段值?

我之前问过这个问题.可能是由于缺乏理想的答案,我再次以此为契机,在这个空间以一种美好的方式解释我的问题.

请注意:我使用的是MySQL数据库

我有一个名为City的模型.它包含id,name.

id      name
1       New York
2       New India
3       New USA
4       New UK
Run Code Online (Sandbox Code Playgroud)

现在使用以下语法

请注意:作为示例,我在下面的语法中输入静态值,即New.最后它应该是动态价值.

City.objects.filter(name__icontains = "新")

显然我得到了纽约,新印度,新美国,新英国

从这一点来说,我很好.


现在转移到我的问题.我想只过滤纽约市的名字.用户可以通过其他方式键入newyork(或)New York(或)NEWYORK(或)NEY yOrk(或),但最后我必须从模型字段值中删除空格并获得所需的结果.

City.objects.filter(name__iregex= "newyork")  ?// How to fix this one

CURRENT OUTPUT is:
[]

DESIRED OUTPUT is:
New York
Run Code Online (Sandbox Code Playgroud)

python regex django

4
推荐指数
1
解决办法
1767
查看次数

标签 统计

django ×3

python ×2

django-1.3 ×1

django-views ×1

regex ×1

unit-testing ×1