我正在寻找一种更新动画中轮廓线的方法,该方法不需要每次重新绘制图形。
我发现大多数对此问题的回答都让人回想起ax.contour
,但是由于我的轮廓叠加在另一幅图像上,所以这太慢了。
我发现的唯一看起来很接近回答问题的答案是通过无效链接来回答:使用FuncAnimation在matplotlib中对轮廓图进行动画处理
编辑:这可能是预期的链接。
示例代码:
#!/usr/bin/env python
import matplotlib.pylab as plt
import matplotlib.animation as anim
from matplotlib.colors import LinearSegmentedColormap as lsc
import numpy
#fig = 0; ax = 0; im = 0; co = 0
image_data = numpy.random.random((100,50,50))
contour_data = numpy.random.random((100,50,50))
def init():
global fig, ax, im, co
fig = plt.figure()
ax = plt.axes()
im = ax.imshow(image_data[0,:,:])
co = ax.contour(contour_data[0,:,:])
def func(n):
im.set_data(image_data[n,:,:])
co.set_array(contour_data[n,:,:])
init()
ani = anim.FuncAnimation(fig, func, frames=100)
plt.show()
Run Code Online (Sandbox Code Playgroud)
干杯。
我只想知道如何将初始值设置为empty_form。
我确实为额外表单创建了具有初始值的内联,没有问题,但是,当用户单击“添加”按钮时,我期望其初始值的字段显示为空,并且我希望它具有与额外表单相同的初始值。
我怎样才能让empty_form
填充初始数据?
提前致谢。
我想在 django 模板中创建新变量,它将具有比较值
obj.site.profile.default_role == obj
Run Code Online (Sandbox Code Playgroud)
不幸的是,这些代码都不起作用:
{% with obj.site.profile.default_role==obj as default %}{% endwith %}
{% with default=obj.site.profile.default_role==obj %}{% endwith %}
Run Code Online (Sandbox Code Playgroud)
什么是正确的语法?
我正在查看这段文档:
该文档解释了如何完成字段依赖,但我有一个稍微不同的问题:
假设我有一个包含两个字段的模型:
class MyModel(models.Model):
field1 = models.CharField(max_length=200)
field2 = models.CharField(max_length=200)
Run Code Online (Sandbox Code Playgroud)
并说两个字段之一是隐藏的,所以模型表单看起来像这样:
class MyModelForm(forms.ModelForm):
class Meta:
...
widgets = {'field2': forms.HiddenImput()}
Run Code Online (Sandbox Code Playgroud)
现在,当用户填写表单时,我 (on clean_field1
) 也填写field2
. 现在,我想将发生的任何错误报告field2
为关于field1
. 这是因为此刻,用户不知道自己做错了什么!
我试图做的是,在 ModelForm 定义中:
def clean(self):
cleaned_data = super(MyModelForm, self).clean()
# Do something here
return cleaned_data
Run Code Online (Sandbox Code Playgroud)
因为这是 Django 页面上显示的内容。但是,问题是clean
方法执行的时候,字典self.errors
是空的,不知道怎么办……
我正在尝试构建一个管理操作“download_selected”,它将下载选定的模型。选择该操作后,我会重定向到中间页面,以便用户可以选择下载格式。当用户选择下载格式并单击“下载”时,就会下载文件。但停留在同一个中间页面上。如何将其重定向回更改表单管理页面?我想要的这个重定向类似于 django“下载所选文件”默认管理操作。谢谢。
这是我的代码。
管理员.py
class SelectDownloadFormatForm(forms.Form):
DOWNLOAD_TYPE_CHOICES=[('csv','csv'),
('json', 'json'),
('xml','xml')]
_selected_action = forms.CharField(widget=forms.MultipleHiddenInput)
download_type = forms.ChoiceField(label=_('Select a Download type'), choices=DOWNLOAD_TYPE_CHOICES, widget=forms.RadioSelect())
def download_selected(self, request, queryset):
import csv
from django.http import HttpResponse, HttpResponseRedirect
import StringIO
form = None
if 'download' in request.POST:
form = self.SelectDownloadFormatForm(request.POST)
if form.is_valid():
dtype = form.cleaned_data['download_type']
print dtype
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="export.csv"'
writer = csv.writer(response)
writer.writerow(['id', 'name', 'qid' ,'label', 'name', 'field'])
count = 0
for s in queryset:
questions_query = ParentModel.objects.filter(parent_form_id = …
Run Code Online (Sandbox Code Playgroud) 我有三个相关的模型:Process
,Factor
和Level
. AProcess
与Factor
s 存在多对多关系,aFactor
将拥有一个或多个Level
s。我正在尝试计算Level
与 a 相关的s 的所有组合Process
。这很容易用 Pythonitertools
作为模型方法来实现,但执行速度有点慢,所以我试图弄清楚如何使用 Django ORM 在 SQL 中执行这个计算。
楷模:
class Process(models.Model):
factors = models.ManyToManyField(Factor, blank = True)
class Factor(models.Model):
...
class Level(models.Model):
factor = models.ForeignKey(Factor, on_delete=models.CASCADE)
Run Code Online (Sandbox Code Playgroud)
示例:一个过程'Running'
涉及三个Factor
s ( 'Distance'
, 'Climb'
, 'Surface'
),每个s由多个Level
s ( 'Long'
/ 'Short'
, 'Flat'
/ 'Hilly'
, 'Road'
/ 'Mixed'
/ 'Trail'
) 组成。计算 …
来自Qt 4 文档:
注意:
QNetworkAccessManager
将收到的请求排队。
现在,我希望能够做两件事(使用 PyQt):
QNetworkAccessManager
等待发送。我认为这些信息一定已经可供内部使用QNetworkAccessManager
,但我还没有找到访问它的方法。我在 Qt 文档或其他地方找不到任何内容,但也许我找错了地方或使用了错误的术语。
有人可以告诉我 Qt 是否提供某种方式来访问有关QNetworkAccessManager
队列的信息吗?
只是为了清楚起见:我可以想出几种方法来自己跟踪这些事情,例如通过检查各个 QNetworkReply 状态,但这不是我正在寻找的解决方案(仅作为最后的手段,如果 Qt 不提供更简单的方法)。
- - 编辑 - -
一个稍微比最小但仍然微不足道的例子来说明我想到的这种事情:
import sys
import json
from PyQt4 import QtNetwork, QtGui, QtCore
def show_reply_content(reply):
print 'url from reply content: {}'.format(
json.loads(str(reply.readAll()))['url'])
# Quit if all replies are finished
reply.deleteLater()
reply.manager().replies_unfinished -= 1
if not reply.manager().replies_unfinished:
app.quit()
# Some initialization
app = QtGui.QApplication(sys.argv)
manager …
Run Code Online (Sandbox Code Playgroud) 我正在 Mac 上安装 aws cli。以前我安装了 anaconda 来控制我的 python 版本。所以我使用conda安装了python。现在我想安装 aws cli。
通过使用 pip: pip3 install awscli --upgrade --user
安装成功。但是,当我运行 aws --version 时,它告诉我找不到 aws 命令。
我再次尝试将它添加到命令行路径。但是我找不到它的安装位置。
当我运行 which python 它给了我 /anaconda/bin/python
人们说这可能不是真正的文件夹,确实我在它下面也找不到 aws cli。然后我运行 ls -al /anaconda/bin/python 它给 lrwxr-xr-x 1 mac staff 9 Aug 15 20:14 /anaconda/bin/python -> python3.6
我完全不明白路径。我怎么能找到我的 aws cli 的安装位置?
型号ProductFilter
有products
ManyToManyField
. 我需要to_export
从product.filters
最高优先级(ProductFilter.priority
字段)获取属性
我明白了这一点
filters = ProductFilter.objects.filter(
products__in=[OuterRef('pk')]
).order_by('priority')
Product.objects.annotate(
filter_to_export=Subquery(filters.values('to_export')[:1])
)
Run Code Online (Sandbox Code Playgroud)
但它提高了
ValueError:此查询集包含对外部查询的引用,并且只能在子查询中使用。
你知道为什么吗?
玩弄非阻塞控制台输入,将 Pythonselectors
与 结合使用sys.stdin
,有一些我不明白的地方:
假设我想在用户按下 时退出循环Enter,可能是在先输入一些其他字符之后。
如果我执行阻塞读取,如下所示,该过程总是在\n
遇到第一个换行符后完成,如预期的那样,无论前面有任何字符:
import sys
character = ''
while character != '\n':
character = sys.stdin.read(1)
Run Code Online (Sandbox Code Playgroud)
现在考虑以下非阻塞读取的最小化示例:
import sys
import selectors
selector = selectors.DefaultSelector()
selector.register(fileobj=sys.stdin, events=selectors.EVENT_READ)
character = ''
while character != '\n':
for key, __ in selector.select(timeout=0):
character = key.fileobj.read(1)
Run Code Online (Sandbox Code Playgroud)
如果我Enter作为第一个输入点击,则会生成一个换行符,并且该过程按预期完成。
但是,如果我先输入一些其他字符,然后输入Enter,则该过程不会完成:我需要Enter再次点击才能完成。
显然,此实现仅在换行是第一个输入时才有效。
这可能有一个很好的理由,但我目前没有看到,也找不到任何相关问题。
这是否与我的非阻塞实现有关,还是stdin
缓冲区的事情,或者可能与控制台或终端实现有关?
(我在 ubuntu 上从 python 3.8 shell 运行它。)
django ×6
python ×4
django-admin ×2
django-orm ×1
matplotlib ×1
pyqt ×1
pyside ×1
qt ×1
queue ×1
select ×1
sql ×1
stdin ×1