当我尝试使用命令testing任何应用程序时(当我尝试使用使用此命令的结构部署myproject时,我注意到了这一点): python manage.py test appname 我得到这个错误: Creating test database for alias 'default'… Got an error creating the test database: permission denied to create database Type 'yes' if you would like to try deleting the test database 'test_finance', or 'no' to cancel syncdb命令似乎工作。 settings.py中的我的数据库设置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' […]
当我保存一个新logging(而不是更新现有logging)时,我想在一个Django模型对象的save()方法中触发一个特殊的操作。 检查(self.id!= None)是否必要且足以保证自我logging是新的,而不是更新? 这可能会忽略的任何特殊情况?
我可以在单个模型上执行Django中的dumpdata ,而不是整个应用程序,如果是这样,怎么办? 对于一个应用程序,它将是: python manage.py dumpdata myapp 但是,我想要一些特定的模型,比如“myapp.mymodel”被抛弃。 原因是,我有一些巨大的,300万的logging,加上同样的应用程序,我不喜欢倾销的数据集。
检查查询是否返回任何结果的推荐用法是什么? 例: orgs = Organisation.objects.filter(name__iexact = 'Fjuk inc') # If any results # Do this with the results without querying again. # Else, do something else… 我想有几种不同的方法来检查,但我想知道一个有经验的Django用户如何做到这一点。 文档中的大多数示例都忽略了没有发现任何内容的情况。
我有一个模型: from django.db import models CHOICES = ( ('s', 'Glorious spam'), ('e', 'Fabulous eggs'), ) class MealOrder(models.Model): meal = models.CharField(max_length=8, choices=CHOICES) 我有一个表单: from django.forms import ModelForm class MealOrderForm(ModelForm): class Meta: model = MealOrder 我想用formtools.preview。 默认模板打印select的短版本('e',而不是'神话般的蛋'),因为它使用 {% for field in form %} <tr> <th>{{ field.label }}:</th> <td>{{ field.data }}</td> </tr> {% endfor %}. 我想要一个像上面提到的一般的模板,而是打印“神话般的蛋”。 [因为我怀疑真正的问题在哪里,我为所有人加上了粗体] 我知道如何以自己丑陋的方式获得select的详细版本: […]
我有一个Django站点,有很多模型和表单。 我有很多自定义表单和表单集和内联表单集以及自定义validation和自定义查询集。 因此,添加模型的动作取决于需要其他东西的表单,而djangopipe理中的“添加模型”则通过自定义的查询集中的500来实现。 无论如何,禁用某些模型的“添加$模型”function? 我想要/admin/appname/modelname/add/给一个404(或适当的“走开”错误信息),我不希望“添加$ MODELNAME”button在/admin/appname/modelname视图上。 Djangopipe理员提供了一种禁用pipe理操作的方法(http://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/#disabling-actions),但是该模型的唯一操作是“delete_selected”。 即pipe理员操作只对现有模型起作用。 有没有一些Django式的方式来做到这一点?
当我尝试Django重新启动其显示消息: 这个端口已经在运行…. 这个问题,特别是在ubunut 10.x不是所有的OS.how我可以实现这个在我正在工作的当前系统? 你能build议我吗?
Django 1.7引入了数据库迁移 。 在Django 1.7中运行unit testing时,它会强制迁移 ,这需要很长时间。 所以我想跳过Django的迁移,并创build最终状态的数据库。 我知道忽略迁移可能是一个不好的做法,因为这部分代码不会被testing。 但事实并非如此:我在CItesting服务器上运行完整的迁移(jenkins)。 我只想跳过速度很重要的本地testing中的迁移。 一些背景: 直到Django 1.6 ,使用South时,我使用了SOUTH_TESTS_MIGRATE设置: 默认情况下,如果以非交互模式运行(包括运行testing时),则South的syncdb命令也将应用迁移 – 每次运行testing时都会运行每次迁移。 如果您希望testing运行程序使用syncdb而不是迁移 – 例如,如果您的迁移时间过长,则只需在settings.py中设置SOUTH_TESTS_MIGRATE = False即可。 但是, syncdb不再存在,现在正在迁移 。 从Django 1.8开始,我将使用–keepdb参数: –keepdb选项可用于在testing运行之间保留testing数据库。 这具有跳过创build和销毁操作的优点,这大大减less了运行testing的时间,尤其是在大型testing套件中。 如果testing数据库不存在,则将在第一次运行时创build,然后保留以备后续运行。 在运行testing套件之前,任何未应用的迁移也将被应用到testing数据库。 所以这个问题仅限于Django 1.7。
如果我在Django中设置一个会话variables,如: request.session["name"] = "name" 有没有一种方法可以从模板中访问它,还是必须从视图中检索它,然后将其传递给模板? 因为我有大约10个小的会话variables,我想在一个模板中访问,并将所有10从视图传递到模板可能会有点混乱。 (我必须使用会话variables,因为它是一个HttpResponseRedirect,但存储在数据库中的variables是为我的目的矫枉过正。) 所以 – 任何方式直接在模板中获取会话variables?
有什么方法可以使用get_object_or_404和select_related在一起或以任何其他方式来实现使用这两个结果(除了把它放在尝试/除外)?