有没有办法扩展另一个应用程序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代码的情况下执行此操作?
我最近编写了依赖于Session对象的购物车代码.这似乎是为匿名用户存储数据的合理方式.
在进行大量测试时,我遇到了一个恼人的问题 - 当用户在结帐过程中部分登录时(或者只是在浏览其他产品时),Django会发出新的session_key,但我无法访问会话数据.
有没有办法保留旧的会话数据?或者我的设计方法是错误的?
有没有办法在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上使用盆景.
我正在研究一个使用多个应用程序(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,但这不起作用.
在使用环境标志时,我似乎无法获取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
我错过了什么,还是我遇到了错误?