我刚刚注意到在UIView的结构布局下找到的iOS 6/7 Delta属性.
这是什么以及为什么AutoLayout缺少这个?

我如何获得外键模型类型?
例如:
class Category(models.Model):
name = models.CharField(max_length = 100)
class SubCategory(models.Model):
category = models.ForeignKey(Category)
title = models.CharField(max_length = 100)
Run Code Online (Sandbox Code Playgroud)
我想在SubCategory中获取类别模型.
我该怎么做?
我们有一个脆弱的形式,我们希望能够在表单HTML模板的不同部分呈现不同的字段,但是我们在Crispy文档中找不到这样做的方法.下面是一些稍微简化的代码,用于说明我们要做的事情:
forms.py
helper = FormHelper()
helper.layout_1 = Layout(
Div(
Field('field_1a'),
Field('field_1b')
)
)
helper.layout_2 = Layout(
Div(
Field('field_2a'),
Field('field_2b')
)
)
Run Code Online (Sandbox Code Playgroud)
template.html
<body>
{% crispy form layout_1 %}
<!-- A big bunch of other html -->
{% crispy form layout_2 %}
</body>
Run Code Online (Sandbox Code Playgroud)
有谁知道实现这一目标的干净方法?
到目前为止我们已经看过的方法必须排除:
choice字段,其选项以编程方式确定.crispy.forms.layout.HTML对象来包含HTML,它将我们布局的两个不同部分分开.但是,有很多HTML,如果我们将它直接嵌入到python中,将很难维护.我们正在尝试使用bootstrap 3面板来创建响应式网格布局,但是我们无法确定如何以我们想要的方式显示它们.下面显示了我们到目前为止的一个例子:

生成布局的django/bootstrap代码(indicents只是我们在incident_panel.html每个列表项中显示一个对象的列表):
{% for incident in incidents %}
<div class="col-lg-4 col-md-4 col-sm-6 col-xs-12">
{% include 'incident_panel.html' %}
</div>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
问题是由于面板#5,#6和#8的高度不同造成的,这意味着我们在它们下方没有完整的排列.理想情况下,我们希望布局执行以下操作:

我们正在寻找一种基于CSS的解决方案,如果可能的话,这将保持根据屏幕宽度将不同数量的列铺设出来的响应行为.我们考虑过几种解决方案,但它们都不是特别好:
<div class="row-fluid">元素中.这是更优雅的,但是要保持我们在页面上布局3个不同网格的响应行为,我们根据屏幕宽度显示/隐藏这些网格.我们正在尝试为AppConfig.ready函数的行为编写一个自动化测试,我们将其用作Django应用程序加载时运行代码的初始化挂钩.我们的ready方法实现使用我们需要在测试中覆盖的Django设置,当然我们正在尝试使用override_settings装饰器来实现这一点.
但是有一个障碍 - 当测试运行时,在ready执行该功能的时候,设置覆盖没有启动(它仍然使用原始值settings.py).是否有一种方法可以在ready调用函数时以覆盖方式应用的方式覆盖设置?
一些代码来演示此行为:
settings.py
MY_SETTING = 'original value'
Run Code Online (Sandbox Code Playgroud)
dummy_app/__ init__.py
default_app_config = 'dummy_app.apps.DummyAppConfig'
Run Code Online (Sandbox Code Playgroud)
dummy_app/apps.py
from django.apps import AppConfig
from django.conf import settings
class DummyAppConfig(AppConfig):
name = 'dummy_app'
def ready(self):
print('settings.MY_SETTING in app config ready function: {0}'.format(settings.MY_SETTING))
Run Code Online (Sandbox Code Playgroud)
dummy_app/tests.py
from django.conf import settings
from django.test import TestCase
from django.test.utils import override_settings
@override_settings(MY_SETTING='overridden value')
@override_settings(INSTALLED_APPS=('dummy_app',))
class AppConfigTests(TestCase):
def test_to_see_where_overridden_settings_value_is_available(self):
print('settings.MY_SETTING in test function: '.format(settings.MY_SETTING))
self.fail('Trigger test output')
Run Code Online (Sandbox Code Playgroud)
产量
====================================================================== …Run Code Online (Sandbox Code Playgroud) 我有一个java方法,它包含5种不同的内部方法.为了提高性能,我想平行地调用这些方法.
例如,使用线程运行method1,method2,... method5并行.
private void getInformation() throws SQLException,
ClassNotFoundException, NamingException {
method1();
method2();
method3();
method4();
method5();
}
Run Code Online (Sandbox Code Playgroud)
但所有这5种方法都有不同的业务逻辑.
我写了一个脚本来从网站上检索天气报告,并在早上将其发送给我的女朋友。
使用 Gmail。当然,我可以使用我的 Postfix 服务器发送它。这是脚本。
什么我不知道是如何使用POPEN()函数的情况有这么多的争论。
我可以使用命令发送邮件。
$ mail -s "??????????" abc@gmail.com < foo
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import urllib2
import subprocess
weather_url = "http://www.weather.com.cn/weather/101020100.shtml"
f=urllib2.urlopen(weather_url)
html = f.read()
soup = BeautifulSoup(html)
content = soup.title.string
with open("foo","w") as mail:
mail.write(content.encode('utf-8'))
command_line = 'mail -s "??????????" abc@gmail.com < foo'
li = command_line.split()
process = subprocess.Popen(li, shell=True)
returncode = process.wait()
Run Code Online (Sandbox Code Playgroud)
天气报告的内容在foo文件中。有人能告诉我如何使用Popen()这么多参数吗?
我尝试了很多。
这个脚本似乎不起作用。
我们目前正在尝试使用 VLC 流式传输连接到我们的一台 Linux 服务器 (Ubuntu 12.04) 的网络摄像头,虽然我们能够成功地流式传输视频并远程查看它,但我们需要更改每秒的帧数(这是默认为 24)。我们目前正在使用以下命令来创建流:
vlc v4l2:// :v4l2-dev=/dev/video0 \
:v4l2-width=640 \
:v4l2-height=480 -- \
sout="#transcode{vcodec=theo,vb=256}:standard{access=http,mux=ogg,dst=:8090}" \
-I dummy
Run Code Online (Sandbox Code Playgroud)
有人能告诉我们如何修改它以改变每秒的帧数吗?我们在网上搜索并浏览了 VLC 文档,但一直无法找到解决方案。
更新
该fps参数已向我们指出,但遗憾的是这并没有解决问题 - 运行下面显示的命令的输出(其中还有一些其他错误,但尽管有这些错误,但流运行良好,我们只是专注于更改帧现在的速度)。
$ vlc -v v4l2:// :v4l2-dev=/dev/video0 :v4l2-width=640 :v4l2-height=480 --sout="#transcode{vcodec=theo,vb=256,fps=1}:standard{access=http,mux=ogg,dst=:8090}" -I dummy
VLC media player 2.0.8 Twoflower (revision 2.0.8a-0-g68cf50b)
[0x14d0758] inhibit interface error: Failed to connect to the D-Bus session daemon: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[0x14d0758] main interface error: no suitable interface module
[0x14d0758] main …Run Code Online (Sandbox Code Playgroud) 我们有一个演员,我们正在编写单元测试,作为测试的一部分,我们想断言某些消息按特定顺序发送给另一个演员.在我们的单元测试中,接收消息的actor由Akka表示,Akka TestProbe在创建时被注入到被测试的actor中.
断言消息被发送到测试探针是没有问题的,但是我们一直在努力设法断言它们是以正确的顺序发送的(我们在文档中找不到任何合适的方法) .我们是如何实现这一目标的?
下面是一个突出问题的最小实现.
履行
case class Message(message: String)
case class ForwardedMessage(message: String)
class ForwardingActor(forwardTo: ActorRef) extends Actor {
def receive = {
case Message(message) =>
forwardTo ! ForwardedMessage(message)
}
}
Run Code Online (Sandbox Code Playgroud)
单元测试
class ForwardMessagesInOrderTest extends TestKit(ActorSystem("testSystem"))
with WordSpecLike
with MustMatchers {
"A forwarding actor" must {
val forwardingReceiver = TestProbe()
val forwardingActor = system.actorOf(Props(new ForwardingActor(forwardingReceiver.ref)))
"forward messages in the order they are received" in {
forwardingActor ! Message("First message")
forwardingActor ! Message("Second message")
// This is …Run Code Online (Sandbox Code Playgroud) 我们有一对看起来(大致)像这样的模型:
class Machine(models.Model):
machine_id = models.CharField(max_length=10)
# Other irrelevant fields
@property
def latest_update(self):
if self.machineupdate_set.count() == 0:
return None
return self.machineupdate_set.order_by('-update_time')[:1].get()
class MachineUpdate(models.Model):
machine = models.ForeignKey(Machine)
update_time = models.DateTimeField(auto_now_add=True)
# Other irrelevant fields
Run Code Online (Sandbox Code Playgroud)
Machine每当我们从数据库加载s 时,我们总是最终使用latest_update该机器的 。当我们第一次实现这一点时,我们有很多机器,每台机器的更新数量相当少,因此为了提高性能(通过减少查询计数),我们向模型管理器添加了一个简单的默认预取Machine:
class MachineManager(models.Manager):
def get_queryset(self):
return super(MachineManager, self).get_queryset().prefetch_related('machineupdate_set')
Run Code Online (Sandbox Code Playgroud)
然而,情况发生了变化,现在我们有大量与每台机器相关的更新,预取查询开始成为一个问题(无论是查询执行时间长还是内存消耗)。
我们正在寻找一种更智能的方式来预取所需数据,因为我们真正需要预取的是每台机器的最新更新,而不是全部。查看了Django prefetch_lated 文档后,我们似乎可以将get_queryset其更改MachineManager为如下所示:
def get_queryset(self):
latest_update_query = MachineUpdate.objects.order_by('-update_time')[:1]
latest_update_prefetch = models.Prefetch('machineupdate_set', queryset=latest_update_query, to_attr='_latest_update')
return super(MachineManager, self).get_queryset().prefetch_related(latest_update_prefetch)
Run Code Online (Sandbox Code Playgroud)
然后修改latest_update以使用预取填充的新属性。然而,这不起作用,因为每当我们Machine使用它过滤查询时,我们都会收到错误:AssertionError: Cannot …
django ×5
python ×4
django-forms ×2
layout ×2
unit-testing ×2
actor ×1
akka ×1
css ×1
django-admin ×1
frame-rate ×1
ios ×1
java ×1
postfix-mta ×1
scala ×1
startup ×1
subprocess ×1
ubuntu ×1
uiview ×1
video ×1
vlc ×1
xcode5 ×1