Tag: django

独特的字段,允许Django中的空值

我有模型Foo有栏杆。 bar字段应该是唯一的,但是允许有空值,这意味着如果bar字段为null ,我想允许多个logging,但是如果它不为null则值必须是唯一的。 这是我的模型: class Foo(models.Model): name = models.CharField(max_length=40) bar = models.CharField(max_length=40, unique=True, blank=True, null=True, default=None) 这里是表的相应的SQL: CREATE TABLE appl_foo ( id serial NOT NULL, "name" character varying(40) NOT NULL, bar character varying(40), CONSTRAINT appl_foo_pkey PRIMARY KEY (id), CONSTRAINT appl_foo_bar_key UNIQUE (bar) ) 当使用pipe理界面创build超过1个foo对象,其中bar是空的它给了我一个错误:“Foo与这个酒吧已经存在。” 但是当我插入数据库(PostgreSQL)时: insert into appl_foo ("name", bar) values ('test1', null) insert into […]

如何导入Django DoesNotExistexception?

我试图创build一个UnitTest来validation对象已被删除。 from django.utils import unittest def test_z_Kallie_can_delete_discussion_response(self): …snip… self._driver.get("http://localhost:8000/questions/3/want-a-discussion") self.assertRaises(Answer.DoesNotExist, Answer.objects.get(body__exact = '<p>User can reply to discussion.</p>')) 我不断收到错误: DoesNotExist: Answer matching query does not exist.

将django表单字段更改为隐藏字段

我有一个Django的forms与RegexField (这是非常类似于正常的文本input字段)。 在我看来,在某些情况下我想把这个隐藏起来,尽量保持表格尽可能的相似。 把这个字段变成HiddenInput字段的最好方法是什么? 我知道我可以使用form['fieldname'].field.widget.attr['readonly'] = 'readonly'设置字段的属性form['fieldname'].field.widget.attr['readonly'] = 'readonly' ,我可以用form.initial['fieldname'] = 'mydesiredvalue' 。 但是,这不会改变小部件的forms。 什么是最好的/最django-y /至lesshacky的方式来使这个领域的<input type="hidden"字段?

你如何让PyPy,Django和PostgreSQL一起工作?

应该使用什么分支或者组合来使PyPy,Django和PostgreSQL在一起玩呢? 我知道PyPy和Django在一起玩的很好,但我不太确定PyPy和PostgreSQL。 我确实看到Alex Gaynor做了一个名为pypy-postgresql的PyPy 分支 。 我也知道有些人使用psycopg2-ctypes 。 这些叉子有没有区别? 还是应该使用稳定的1.9 PyPy并使用psycopg2-ctypes? 使用ctypes选项可能会损害性能,请参阅下面的注释。 另外,有没有人遇到与pyscopg2使用PyPy的任何陷阱? 如果某些东西不能正常工作,看起来很容易,但是大多数情况下,我正在寻找一个程序员可以提前做的准备工作。 我环顾四周,似乎psycopg2与PyPy原生地工作。 尽pipepsycopg2-ctypes似乎确实为某些人工作,但还是有关于pypy-dev的讨论。 我在Windows上工作,我不认为psycopg2-ctypes已经准备好了Windows。

Django教程:什么是choice_set?

在Django教程中有这样一行, 编写你的第一个Django应用程序,第1部分 : p.choice_set.create(choice='Not much', votes=0) choice_set是如何被存在的,它是什么? 我猜想choice部分是本教程中使用的模型Choice的小写版本,但是choice_set是choice_set ? 你能详细点吗? 更新1 :根据本詹姆斯的回答,我在描述的文档中find了一个地方: 关系“落后” 。

在应用程序有testing目录时,在Django中运行特定的testing用例

Django文档( http://docs.djangoproject.com/en/1.3/topics/testing/#running-tests )表示,您可以通过指定个别testing用例来运行它们: $ ./manage.py test animals.AnimalTestCase 这假设你在你的Django应用程序的tests.py文件中有你的testing。 如果这是真的,那么这个命令就像预期的那样工作。 我有一个testing目录中的Django应用程序的testing: my_project/apps/my_app/ ├── __init__.py ├── tests │ ├── __init__.py │ ├── field_tests.py │ ├── storage_tests.py ├── urls.py ├── utils.py └── views.py tests/__init__.py文件有一个suite()函数: import unittest from my_project.apps.my_app.tests import field_tests, storage_tests def suite(): tests_loader = unittest.TestLoader().loadTestsFromModule test_suites = [] test_suites.append(tests_loader(field_tests)) test_suites.append(tests_loader(storage_tests)) return unittest.TestSuite(test_suites) 运行testing我做: $ ./manage.py test my_app […]

如何在没有Django其余部分的情况下使用Django模板?

我想在我的(Python)代码中使用Django模板引擎,但是我没有构build一个基于Django的网站。 如何在不使用settings.py文件(及其他文件)的情况下使用它并设置DJANGO_SETTINGS_MODULE环境variables? 如果我运行下面的代码: >>> import django.template >>> from django.template import Template, Context >>> t = Template('My name is {{ my_name }}.') 我得到: ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

在Django模型中存储列表最有效的方法是什么?

目前我在我的代码中有很多类似于以下的python对象: class MyClass(): def __init__(self, name, friends): self.myName = name self.myFriends = [str(x) for x in friends] 现在我想把它变成一个Django模型,其中self.myName是一个string字段,而self.myFriends是一个string列表。 from django.db import models class myDjangoModelClass(): myName = models.CharField(max_length=64) myFriends = ??? # what goes here? 由于这个列表是python中的一个常见的数据结构,所以我期望有一个Django模型字段。 我知道我可以使用ManyToMany或OneToMany关系,但我希望避免在代码中的额外间接。 编辑: 我添加了这个相关的问题 ,哪些人可能会觉得有用。

套接字和websocket之间的区别?

我正在构build需要使用套接字连接与另一个应用程序通信的Web应用程序。 对我来说这是一个新的领域,所以要确保套接字不同于websocket 。 看起来他们只是在概念上相似。 问起,因为最初我计划使用Django作为我的项目的基础,但是在上面链接的SOpost中,已经明确指出websocket是不可能的(或者至less不可靠,即使是像django-websockets )使用首选的Django设置(Apache与mod_wsgi)。 然而,我发现其他职位随便导入Python的套接字模块,像抓住服务器的主机名一样简单。 所以: 他们真的不一样吗? 有没有任何理由不使用Django的项目,依靠与外部服务器build立套接字连接?

django-debug-toolbar没有显示出来

我看了其他问题,无法弄清楚… 我做了以下安装django-debug-toolbar: pip安装django-debug-toolbar 添加到中间件类: MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', # Uncomment the next line for simple clickjacking protection: # 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware', ) 3增加了INTERNAL_IPS: INTERNAL_IPS =('174.121.34.187',) 4添加了debug_toolbar安装的应用程序 我没有得到任何错误或任何东西,工具栏不显示在任何页面,甚至没有pipe理员。 我甚至添加了debug_toolbar模板的目录到我的TEMPLATE_DIRS