小编Aar*_*uyn的帖子

Django - 扩展另一个应用程序ModelAdmin?

有没有办法扩展另一个应用程序ModelAdmin?

我有一个使用django.contrib.comments提供的功能的项目.

CommentsAdmin ModelAdmin类具有:
actions = ["flag_comments", "approve_comments", "remove_comments"]

我想在我的项目中扩展CommentsAdmin ModelAdmin以包含一个动作ban_user.

我已经尝试NewCommentsAdmin(CommentsAdmin)在我的admin.py文件中创建自己的对象并注册它,但我收到通知'AlreadyRegistered at /admin/' 'The model Comment is already registered'.

class NewCommentAdmin(CommentAdmin):
    actions = ['ban_user']

    def ban_user(self, request, queryset):
        pass

admin.site.register(Comment, NewCommentAdmin)
Run Code Online (Sandbox Code Playgroud)

有没有办法在不修改原始django.contrib.comments代码的情况下执行此操作?

django django-admin

14
推荐指数
3
解决办法
3018
查看次数

登录后保留Django会话数据?

我最近编写了依赖于Session对象的购物车代码.这似乎是为匿名用户存储数据的合理方式.

在进行大量测试时,我遇到了一个恼人的问题 - 当用户在结帐过程中部分登录时(或者只是在浏览其他产品时),Django会发出新的session_key,但我无法访问会话数据.

有没有办法保留旧的会话数据?或者我的设计方法是错误的?

django session-state

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

EdgeJgramField django haystack中的min和max字母

有没有办法在django haystack索引中限制edge ngrams的大小?例如,我创建ngram如下:

#search_indexes.py
content_auto = indexes.EdgeNgramField(model_attr='name')
Run Code Online (Sandbox Code Playgroud)

但是我不想创建2个字母的ngrams,我实际上想要将min设置为4或5.

作为背景,我使用django-haystack/elasticsearch,在heroku上使用盆景.

django-haystack elasticsearch

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

Django,Python模块和Git子模块

我正在研究一个使用多个应用程序(python模块)的django项目.大多数python模块都由其他人在自己的git存储库中维护.我使用git-submodules命令将它们导入到'apps'目录下的项目中,如下所示:

mysite/
mysite/apps
mysite/apps/django-extensions
mysite/apps/django-celery
mysite/apps/django-comments
mysite/apps/myapp
...etc
Run Code Online (Sandbox Code Playgroud)

大多数子模块(例如django-extensions)都有一个包含实际python模块的子文件夹:mysite/apps/django-extensions/django_extensions

这意味着我不能简单地将我的python路径设置为包含mysite/apps - 我必须将其设置为包含mysite/apps/django-extensions,以便它可以导入django_extensions子文件夹.

打字令人烦恼:

PYTHONPATH=mysite/apps/django-extensions:mysite/apps/django-celery... python manage.py runserver
Run Code Online (Sandbox Code Playgroud)

是否有更简单的方法来布置我的回购?一个简单的过程?只是为了好玩,我尝试了一个mysite/apps/*的PYTHONPATH,但这不起作用.

python git django module git-submodules

3
推荐指数
2
解决办法
2470
查看次数

点击卸载破坏w/ - 环境标志?

在使用环境标志时,我似乎无法获取pip来卸载软件包.

我创建了一个虚拟环境:

virtualenv --no-site-packages /path/to/testenv

虽然不在虚拟环境中,但我发出:

pip install --environment /path/to/testenv django

Django已下载并安装.

如果我反向执行相同的命令,它不起作用:

pip uninstall --environment /path/to/testenv django

uninstall命令输出:

卸载Django:继续(是/否)?y已成功卸载Django

但如果我真的进入虚拟环境: . /path/to/testenv/bin/activate

然后运行uninstall命令: pip uninstall django

我明白了:

卸载Django:

/path/to/testenv/bin/django-admin.py
/path/to/testenv/lib/python2.7/site-packages/Django-1.3.1-py2.7.egg-info/path/to/testenv /lib/python2.7/site-packages/django继续(是/否)?

我正在运行pip 1.0

我错过了什么,还是我遇到了错误?

python pip virtualenv

3
推荐指数
1
解决办法
2974
查看次数