小编sha*_*ker的帖子

修改Wagtail发布下拉列表(每个应用程序)

我想重新配置默认的“发布”菜单。默认配置是这样的:

默认发布菜单

我想将“发布”设为默认操作,然后将其移至顶部。我也想删除“提交审核”,因为我们的网站目前不需要该功能。

理想情况下,我希望能够逐个应用覆盖菜单配置-将来,我们可能会在网站的其他部分中使用其他配置。

这可能吗?

django wagtail

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

most_common with django-taggit

我正在尝试获取我网站上最常用标签的有序列表.django taggit 的API文档引用了一个most_common()方法,但我似乎无法使它工作.文件说:

"返回QuerySet所有标签中的一个,用它们出现的次数注释,可用作num_times每个标签的属性."

但他们没有展示一个有效的例子.假设"Item"模型具有工作"tags"字段,这是否意味着您应该能够执行以下操作:

Item.objects.all.tags.most_common()
Run Code Online (Sandbox Code Playgroud)

我尝试过这种变化,但似乎无法获得最常用标签的有序列表.这里有什么神奇的咒语?

django django-taggit

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

神秘的“嵌入的空字节”错误

与团队一起在一个相当大/复杂的Django项目上工作,有时会看到Runserver崩溃ValueError: embedded null byte。我们重新启动运行服务器,就可以了-几分钟或几天。我们无法检测到导致崩溃的模式(似乎是完全随机的)。幸运的是,它只是在本地开发中发生,而不是在我们的服务器上发生,但是我担心它会阻碍我们前进。

下面的堆栈跟踪没有指向我们代码中的任何位置-似乎来自Django或virtualenv本身。

在El Capitan上使用Django 1.9.8,Python 3.5.0。

我看不到任何调试方法。理论?

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/__init__.py", line 345, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/base.py", line 348, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 54, in execute
    super(Command, self).execute(*args, **options)
  File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/base.py", line 399, in execute
    output = self.handle(*args, **options)
  File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 93, in handle
    self.run(**options)
  File "/path/to/virtualenvs/ourproj/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 102, in run
    autoreload.main(self.inner_run, None, …
Run Code Online (Sandbox Code Playgroud)

python django

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

Wagtail 索引:排除某些内容还是使用查询集?

Wagtail关于ElasticSearch indexing的文档中,似乎给定模型的所有实例都添加到索引中。但是我想通过创建 QuerySet 或能够设置某种exclude参数(QuerySet 会更好)来排除一些(许多)行被索引。

有没有办法做到这一点?或者我是否需要从 Wagtail 外部索引 WT 模型?

django wagtail

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

从w外部上传Wa图像

在无法子类化的Django模型中Page,我想将现有的ImageField转换为使用Wagtail图像。我将字段重新定义为:

avatar = models.ForeignKey(
    'wagtailimages.Image', null=True, on_delete=models.SET_NULL, related_name='+'
)
Run Code Online (Sandbox Code Playgroud)

用户需要能够将图像上传到他们的个人资料视图。在Django视图的forms.py中,我有:

avatar = forms.ImageField(
    label='Your Photo', required=False,
    error_messages={'invalid': "Image files only"}, widget=forms.FileInput())
Run Code Online (Sandbox Code Playgroud)

当我将图像上传到视图时,它崩溃于:

Cannot assign "<InMemoryUploadedFile: filename.jpg (image/jpeg)>":
"UserProfile.avatar" must be a "Image" instance.
Run Code Online (Sandbox Code Playgroud)

我很确定问题出在表单中的字段定义上,但是我无法弄清楚正确的定义应该是什么。

我知道我需要手动将图像附加到UserProfile和Collection,但是需要首先克服此错误。还是尝试在非WT模型中使用各个WT字段是一个坏主意吗?谢谢。

django wagtail

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

Django 管理中的 raw_id_fields 和 ManyToMany

我想在管理中的多对多关系上使用 raw_id_fields,并且希望每个相关对象显示在自己的行上(而不是单个字段中的逗号分隔列表,这是默认行为)。根据在野外发现的示例,我似乎应该能够做到这一点:

# models.py
class Profile(models.Model):
    ...
    follows = models.ManyToManyField(User,related_name='followees')

# admin.py
class FollowersInline(admin.TabularInline):
    model = Profile
    raw_id_fields = ('follows',)
    extra = 1

class ProfileAdmin(admin.ModelAdmin):
    search_fields = ('user__first_name','user__last_name','user__username',)
    inlines = (FollowersInline,)

admin.site.register(Profile,ProfileAdmin)
Run Code Online (Sandbox Code Playgroud)

但这会产生错误:

<class 'bucket.models.Profile'> has no ForeignKey to <class 'bucket.models.Profile'>
Run Code Online (Sandbox Code Playgroud)

我不清楚我在这里做错了什么。感谢您的建议。

django django-orm django-admin

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

使用cache.get_or_set()缓存Django函数调用的结果

这条款工作正常:

if cache.get(cache_name):
    events = cache.get(cache_name)
else:
    events = self.get_google_events()
    cache.set(cache_name, events, 60 * 10)
Run Code Online (Sandbox Code Playgroud)

如果我输入一个print语句get_google_events(),只有在缓存过期时才会打印,如预期的那样.但如果我试图将上述内容缩短到这个:

events = cache.get_or_set(cache_name, self.get_google_events(), 60 * 10)
Run Code Online (Sandbox Code Playgroud)

每次都会触发print语句(即缓存被静默打破).第二种形式不是第一种形式吗?

django caching

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

将 pandas 数据写入 Excel 并有效利用内存

我成功地将数据帧写入 Excel 使用df.to_excel(). 不幸的是,这很慢并且消耗大量内存。数据集越大,消耗的内存就越多,直到(我需要处理的最大数据集)服务器缺乏资源。

我发现使用该df.to_csv()方法反而提供了方便的chunksize=nnnn论据。这要快得多并且几乎不消耗额外的内存。精彩的!我将首先写入 .csv,然后在另一个进程中将 .csv 转换为 .xlsx。我尝试使用 openpyxl 执行此操作,但我发现的每个解决方案一次一行地迭代 csv 数据,附加到工作簿表中,例如

with open(temporary_filepath, 'r') as f:
    for row in csv.reader(f):
        ws.append(row)
wb.save()
Run Code Online (Sandbox Code Playgroud)

这是可行的,但是当我观察我的资源监视器时,消耗同样多的内存并且速度同样慢(我现在假设原始版本df.to_excel()在内部执行相同的操作)。所以这种方法最终并没有让我摆脱困境。

我原以为我可以做一些相当于 File | 的事情。另存为,但在Python中,例如将整个csv读入openpyxl工作簿并将其一次性保存到一个文件中,无需迭代,但这要么是不可能的,要么我找不到它的文档。

给定一个非常大的 Pandas 数据帧并要求输出 .xlsx(而不是 .csv),低内存消耗的最佳方法是什么?使用 Pandas 或 Openpyxl可以有效地完成这项工作吗?或者是否有更好的工具来完成这项工作?

更新:看起来 pyexcel 有一个另存为方法可以解决这个问题。如果可能的话,我宁愿不要向堆栈中添加另一个电子表格库,但如果 pandas 或 openpyxl 中没有等效的库,则会这样做。有人用过成功吗?

python csv excel pandas openpyxl

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

评论和内容对象

我试图找出其工作原理:

>>> comments = Comment.objects.all() 
>>>[c.content_object for c in comments] 
Run Code Online (Sandbox Code Playgroud)

[返回注释附加到的对象列表]

但这不是:

>>> c = Comment.objects.filter(id=111) 
>>> c 

[<Comment: Related object name here ...>] 
>>> c.content_object 

Traceback (most recent call last): 
  File "<console>", line 1, in <module> 
AttributeError: 'QuerySet' object has no attribute 'content_object' 
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,每个"c"都是一个Comment实例.那么为什么c在第一种情况下有一个content_object属性而在第二种情况下没有?谢谢.

django comments

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

Django中的字数统计查询

给定一个包含Boolean和TextField字段的模型,我想做一个查询,找到符合某些条件的记录,并在TextField中包含多于"n"个单词.这可能吗?例如.:

class Item(models.Model):

    ...    
    notes = models.TextField(blank=True,)
    has_media = models.BooleanField(default=False)
    completed = models.BooleanField(default=False)
    ...
Run Code Online (Sandbox Code Playgroud)

这很简单:

items = Item.objects.filter(completed=True,has_media=True)
Run Code Online (Sandbox Code Playgroud)

但是如何过滤"注释"字段超过25个单词的那些记录的子集?

django words character count

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

动态div通过JQuery Mobile中的翻转切换开关

我想使用Flip Switch Toggle小部件让用户在页面上的两个div之间切换(淡入淡出).我知道该元素通常用于在表单中的二元期权之间进行选择,因此这会有一些元素滥用,但我认为应该可以通过创意重复使用.

但是,表单文档说你需要处理所有表单服务器端,而我想避免服务器事务 - 我已经在页面中有两个div.

这甚至可能吗?

toggle jquery-mobile

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

全局禁用本地开发的Moodle邮件

刚开始使用Moodle开发并且很惊讶我找不到关于如何全局禁用发送出站邮件的文档参考.例如,如果我有一个本地开发环境使用生产数据库的副本,并且需要运行cron作业用于测试目的,我不想冒实际发送邮件的风险(在其他框架中我会将该邮件发送到stdout或日志代替).我在config.php中设置了:

$CFG->debug = 38911;
$CFG->debugdisplay = true;
Run Code Online (Sandbox Code Playgroud)

但我正在寻找类似的东西

$CFG->debug_mail ="/logs/moodle_mail.log"
Run Code Online (Sandbox Code Playgroud)

或类似的.这个问题通常如何解决?

email moodle

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