小编sog*_*ing的帖子

django admin inlines:从formfield_for_foreignkey获取对象

我试图在django管理内联中过滤外键字段中显示的选项.因此,我想访问正在编辑的父对象.我一直在研究,但找不到任何解决方案.

class ProjectGroupMembershipInline(admin.StackedInline):
    model = ProjectGroupMembership
    extra = 1
    formset = ProjectGroupMembershipInlineFormSet
    form = ProjectGroupMembershipInlineForm

    def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
        if db_field.name == 'group':
            kwargs['queryset'] = Group.objects.filter(some_filtering_here=object_being_edited)
        return super(ProjectGroupMembershipInline, self).formfield_for_foreignkey(db_field, request, **kwargs)
Run Code Online (Sandbox Code Playgroud)

我已经验证了编辑对象时kwargs是空的,所以我无法从那里获取对象.

有什么帮助吗?谢谢

python django django-admin

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

为什么以及在哪里使用INDEX - 优点和缺点

我对数据库编程很陌生,我想知道索引的负面影响是什么?据我所知,索引加速了必须在数据库中搜索特定值的操作(例如SELECT).

考虑这个例子:

对于表Example,在列上有索引user_name,操作:

SELECT TestField FROM Example WHERE user_name=XXXX
Run Code Online (Sandbox Code Playgroud)

由于索引会更快.

我的问题是:使用索引的缺点是什么?如果一个索引只给我们专业人士(性能提升),他们为什么不设置为默认值?

mysql sql indexing select

12
推荐指数
2
解决办法
1万
查看次数

post_save 信号和关系

我正在应用 post_save 信号来应用每个对象的用户权限,然后相应地过滤查询集。

我的模型是这样的:

class Project(models.Model):
    # Relations with other entities.
    employees = models.ManyToManyField('staff.Person', through='project.PersonProjectMembership',
                                       related_name='projects')
    research_groups = models.ManyToManyField('group.Group', related_name='projects',
                                             through='project.ProjectGroupMembership')
    departments = models.ManyToManyField('department.Department', related_name='projects',
                                         through='project.ProjectDepartmentMembership')
Run Code Online (Sandbox Code Playgroud)

问题是:当我捕捉到保存后的信号时,虽然我已经输入了部门、研究组和员工的值,但它们似乎总是为空。有什么我错过的吗?

更新:在当前代码下方,尚未按预期工作。我已经通过 m2m_changed 更改了 post_save。

from django.db.models.signals import m2m_changed
from django.db import models
from django.dispatch.dispatcher import receiver

class Project(models.Model):
    employees = models.ManyToManyField('staff.Person', through='project.PersonProjectMembership',
    related_name='projects')

class PersonProjectMembership(models.Model):
    project = models.ForeignKey('project.Project', related_name="person_memberships")
    person = models.ForeignKey('staff.Person', related_name="project_memberships")
    lead = models.BooleanField(default=False)
    position = models.CharField(max_length=50)
    project_manager = models.BooleanField(
        default=False
    )

    class Meta:
        permissions = (
            ('view_personprojectmembership', _('View person project …
Run Code Online (Sandbox Code Playgroud)

python django signals django-models django-admin

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

django admin keyerror:在表单中找不到密钥

我在 django admin 中的表单有一个奇怪的问题。

我已经定义了我的表单、模型和 modeladmin:

import datetime
from cmsplugin_news.admin import NewsAdmin as OldNewsAdmin
from django import forms
from django.db import models
from news.models import News


class NewNewsForm(forms.ModelForm):
    class Meta:
        model = News
        fields = ('title', 'is_published', 'pub_date', 'is_featured')


class NewsAdmin(OldNewsAdmin ):
    fields = ('title', 'is_published', 'pub_date', 'is_featured')
    form = NewNewsForm


class News(models.Model):
    title = models.CharField(_('Title'), max_length=255)
    is_published = models.BooleanField(_('Published'), default=False)
    pub_date = models.DateTimeField(_('Publication date'), default=datetime.datetime.now)
    is_featured = models.BooleanField(_('Featured'), default=False)

admin.site.register(News, NewsAdmin)
Run Code Online (Sandbox Code Playgroud)

模型中的所有字段似乎也出现在管理和表单中。但是当我前往 /en/admin/news/news/4/ 时,我收到以下 KeyError: key "is_featured" not found …

python django django-models django-forms django-admin

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

如何在 django-tinymce 中启用插件?

我已经开始在我的 Django 项目中使用 tinymce。我需要启用一些与 django-tinymce 捆绑在一起的插件(例如,模板)。因此,在我的 settings.py 中,我添加了以下配置:

TINYMCE_DEFAULT_CONFIG = {
    'theme': 'advanced', 'relative_urls': False,
    'plugins': 'template',
    'toolbar': 'template'
}
MAX_UPLOAD_SIZE = 512000
Run Code Online (Sandbox Code Playgroud)

认为他们可能会启用模板插件,但似乎没有。如何在 django-tinymce 中启用插件?我没有在任何地方找到这个。

感谢您的建议!

更新:

我想我误解了配置是如何完成的。我用一些配置创建了一个 config.js:

tinyMCE.init({
    theme: 'advanced',
    plugins: 'template',
    height: '350px',
    width: '1000px'
});
Run Code Online (Sandbox Code Playgroud)

然后,我从 MyModelAdmin.Media 链接它。(我正在从 django-admin 加载编辑器。)

class MyModelAdmin(ModelAdmin):
    class Media:
        from django.conf import settings
        js = (
            settings.STATIC_URL + 'tiny_mce/config.js',
        )
Run Code Online (Sandbox Code Playgroud)

config.js 似乎正确加载,但我看不出任何区别。

python django tinymce django-settings django-tinymce

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

sqlite3.DatabaseError:文件已加密或不是数据库

我创建了一个sqlite db并将其上传到托管.

然后我从我的脚本中检索它并尝试插入一些数据,但execute()返回一个

DatabaseError (file is encrypted or is not a database).

urllib.urlretrieve('http://%s/%s' % (HOST, NAME_DB), NAME_DB)
con = sqlite3.connect(NAME_DB)
cur = con.cursor()
cur.execute('insert into log(date, count, average) values(date("now"), ?, ?)', (1, 1.2))
con.commit()
con.close()

Traceback (most recent call last):
  File "mylog.py", line 17, in <module>
    cur.execute('insert into log(date, count, average) values(date("now"), ?, ?)', (1, 1.2)) 
sqlite3.DatabaseError: file is encrypted or is not a database
Run Code Online (Sandbox Code Playgroud)

如果我使用sqlite CLI插入数据,则不会发生此类错误.请你帮助我好吗?

python sqlite

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

使用Django模型权限会引发DoesNotExist错误

我对django守护者有些问题.我有一个新闻模型定义

class News(models.Model):
    title = models.CharField(_('Title'), max_length=255)
    slug = models.SlugField(_('Slug'), unique_for_date='pub_date',)

    objects = models.Manager()
    featured = FeaturedNewsManager()

    link = models.URLField(_('Link'), blank=True, null=True,)

    class Meta:
        permissions = (('view_news', _('view news')))
Run Code Online (Sandbox Code Playgroud)

然后我尝试将view_news权限分配给我的一个用户,我收到以下错误:

>>> from guardian.shortcuts import assign_perm
>>> g = Group.objects.latest('pk')
>>> n = News.objects.get(pk=4)
>>> assign_perm( 'news.view_news', g, n)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/home/roberto/.virtualenvs/ve_news/local/lib/python2.7/site-packages/guardian/shortcuts.py", line 93, in assign_perm
    return model.objects.assign_perm(perm, group, obj)
  File "/home/roberto/.virtualenvs/ve_news/local/lib/python2.7/site-packages/guardian/managers.py", line 90, in assign_perm
    permission = Permission.objects.get(content_type=ctype, codename=perm)
  File …
Run Code Online (Sandbox Code Playgroud)

python django permissions django-models django-guardian

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

django - 迁移和模型翻译的问题

我正在尝试将我的应用程序从 Django v1.6.11 升级到 v1.7.8。我按照说明从南方升级,但一次又一次遇到相同的错误。更确切地说:

\n\n
$ python manage.py migrate makemigrations\n/home/roberto/virtualenvs/ve_unicms-django1.7/local/lib/python2.7/site-packages/reversion/admin.py:385: RemovedInDjango18Warning: commit_on_success is deprecated in favor of atomic.\n  def recover_view(self, request, version_id, extra_context=None):\n\n/home/roberto/virtualenvs/ve_unicms-django1.7/local/lib/python2.7/site-packages/reversion/admin.py:397: RemovedInDjango18Warning: commit_on_success is deprecated in favor of atomic.\n  def revision_view(self, request, object_id, version_id, extra_context=None):\n\n/home/roberto/virtualenvs/ve_unicms-django1.7/local/lib/python2.7/site-packages/django/forms/widgets.py:143: RemovedInDjango18Warning: `VersionMetaAdmin.queryset` method should be renamed `get_queryset`.\n  .__new__(mcs, name, bases, attrs))\n\n/home/roberto/virtualenvs/ve_unicms-django1.7/local/lib/python2.7/site-packages/cms/publisher/manager.py:5: RemovedInDjango18Warning: `PublisherManager.get_query_set` method should be renamed `get_queryset`.\n  class PublisherManager(models.Manager):\n\n/home/roberto/virtualenvs/ve_unicms-django1.7/local/lib/python2.7/site-packages/cms/models/managers.py:15: RemovedInDjango18Warning: `PageManager.get_query_set` method should be renamed `get_queryset`.\n  class PageManager(PublisherManager):\n\n/home/roberto/virtualenvs/ve_unicms-django1.7/local/lib/python2.7/site-packages/cms/admin/change_list.py:39: RemovedInDjango18Warning: `CMSChangeList.get_query_set` method should be renamed `get_queryset`.\n  class CMSChangeList(ChangeList):\n\n/home/roberto/virtualenvs/ve_unicms-django1.7/local/lib/python2.7/site-packages/cms/admin/forms.py:397: RemovedInDjango18Warning: Creating …
Run Code Online (Sandbox Code Playgroud)

python django django-south django-modeltranslation

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

SearchBackendError:在任何search_indexes中均未找到任何字段

我正在尝试使用whoosh作为引擎来设置django-haystack。如本文所述,建立第一个索引时发生了我的问题。

鉴于我的staff / models.py:

class Person(models.Model):
    first_name = models.CharField(_('first name'), max_length=30, blank=True)
    last_name = models.CharField(_('last name'), max_length=30, blank=True)

    def __unicode__(self):
        return '%s %s' % ( self.first_name, self.last_name)
Run Code Online (Sandbox Code Playgroud)

我已经写了职员/indexes.py:

from haystack import indexes
from staff.models import Person


class PersonIndex(indexes.SearchIndex, indexes.Indexable):
    first_name = indexes.CharField(model_attr='first_name')
    last_name = indexes.CharField(document=True, model_attr='last_name')

    def get_model(self):
        return Person
Run Code Online (Sandbox Code Playgroud)

然后,将以下配置添加到mycms / settings.py中,以将whoosh用作引擎:

import os
HAYSTACK_CONNECTIONS = {
    'default': {
        'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine',
        'PATH': os.path.join(os.path.dirname(__file__), 'whoosh_index'),
    },
}
Run Code Online (Sandbox Code Playgroud)

后者是从教程中逐字逐句地获取。然后,我为索引添加了一个简单的文本模板,即mycms / templates / search / indexes …

python django whoosh django-haystack

2
推荐指数
1
解决办法
1027
查看次数

WebSphere 8.5.5.9未随SDK 8一起提供

在我们的项目中,我们正在从WebSphere 7(Java 6)迁移到8.5.5.9(Java 8).我们选择了这个精确版本,因为它支持Java 8.

不知何故,我们只使用SDK 1.6安装了8.5.5.9.

安装了jdk 8,但WAS支持最多java 6

除了默认的WAS 8.5.5.9设置之外,是否还有与IBM Installation Manager一起安装的特殊修补程序?

提前致谢.

java websphere java-8 websphere-8

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