我必须从模型生成一个FormSet,但我需要在每个表单中插入一个"额外值".
具体来说,我有一个JApplet在图像上生成一些标记和路径,并在服务器上发布它.
在我的模型中,线条由两个标记组成.但是当我发布它时,因为我正在使用从JApplet而不是从数据库生成的id,我不知道将从哪个Markers创建路径.
所以我想在表单上的Marker上插入一个"临时id",并在保存Path之前在视图中做正确的安排.
我想为标记定义一个自定义表单,但它似乎不是很干,如果我更改Marker模型,我不想再回到这个状态.
这是表格:
class PointForm(forms.ModelForm):
temp_id = forms.IntegerField()
class Meta:
model = Point
def clean(self):
if any(self.errors):
# Don't bother validating the formset unless each form is valid on its own
return
ingresso = self.cleaned_data['ingresso']
ascensore = self.cleaned_data['ascensore']
scala = self.cleaned_data['scala']
if (ingresso and ascensore) or (ingresso and scala) or (ascensore and scala):
raise forms.ValidationError("A stair cannot be a elevator or an access!!!")
return self
def save(commit=True):
# do something with self.cleaned_data['temp_id']
super(PointForm).save(commit=commit)
Run Code Online (Sandbox Code Playgroud)
而型号:
class Point(models.Model):
RFID …Run Code Online (Sandbox Code Playgroud) 这是一个优化问题,这是我目前的(工作)情况:
客户端请求是执行SQL查询,并将结果显示在某些表的网页上,每个表都代表一个带计数器的指标,如:
年龄=> 18-20:15位用户,21-35位:42位用户,......
国家=>美国:22个用户,GB:0个用户,......
等等.计算所有表(以及一些关于用户会话,基于活动,期间和年份生成的会话),我们目前有约200个指标.
生产中最后发布的系统使用(将df视为SQL查询产生的DataFrame):
df.rdd.aggregate(metricsMap) (
(acc: MetricsMap, r:Row) => {
acc.analyzeRow(r)
acc
},
(acc1: MetricsMap, acc2: MetricsMap) => {
acc1.merge(acc2)
acc1
}
)
Run Code Online (Sandbox Code Playgroud)
其中MetricsMap是用于提取和从行聚合数据的对象.
此操作非常占用CPU,并且在服务器上从没有参数的查询中提取数据需要大约20秒(因此来自镶木地板文件中的所有数据).
我决定使用聚合,因为对于他们的统计分析,他们想要多个预期:一些指标应该由用户密钥计数,另一个指标用户名(对于网站......)和另一个按产品密钥计算.使用这种方法我只需要循环一次结果,但我不知道这是否是更好的方法......
这是更好的方法,还是存在一些其他(更快)的方法来获得相同的结果?
关于预先计算度量的问题,他们可以对数据集进行的查询没有约束,所以我不知道这是否可能......你能举个例子吗?
回答一些问题
我创建了一个动态ListView,其中从顶部添加对象.
当用户按下按钮时,listView将从数组的内容更新,然后在自定义arrayAdapter上调用notifyDataSetChanged().
现在我想在添加时保留列表位置,所以我添加了这段代码:
// pausedCounter trace the number of objects(lines) to add to the listView
int idx = listView.getFirstVisiblePosition() + pausedCounter;
View first = listView.getChildAt(0);
int position = 0;
if (first != null)
position = first.getTop();
// cycle to add the new objects to the listView
for (Tweet[] tweets1 : pausedTweets)
super.updateTweets(tweets1);
listView.setSelectionFromTop(idx, position);
// reset of counter and accumulator
pausedTweets = new ArrayList<Tweet[]>();
pausedCounter = 0;
Run Code Online (Sandbox Code Playgroud)
此代码以这种方式运行:如果getFirstVisiblePosition返回2,并且pausedCounter为5,则在更新之后,列表将被设置为新五个元素的第3个.
我想要的是将列表的第一个可见元素设置为8.
经过进一步的测试后,我发现listView的子节点数在这段代码的运行过程中没有变化,所以在我调用setSelectionFromTop 后它会更新listView的大小.可能是这个问题?
我很清楚如何使用manifest中的主题和标签windowBackground来设置Android中活动的启动.
最近,一位客户表示要"根据白天的某些事件更改启动画面".我几乎可以肯定它无法完成,但我决定用这段代码来试一试:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
int random = (int) Math.abs(System.currentTimeMillis() % 3);
switch (random) {
case 0:
setTheme(R.style.FullscreenTheme1);
break;
case 1:
setTheme(R.style.FullscreenTheme2);
break;
default:
setTheme(R.style.FullscreenTheme3);
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
显然这不起作用.
有人已经试图帮助这个或有更好的主意吗?
谢谢
编辑:
创建一个虚假的活动或片段以显示为启动画面将很容易,但在应用程序启动时会留下令人不快的白色(或黑色取决于主题)闪烁.
这个问题是关于以编程方式更改启动画面的可行性,其结果与在清单中对其进行硬编码相同.
我正在尝试使用 spark 1.6.2 将 MySQL 远程表转换为镶木地板文件。
该过程运行 10 分钟,填满内存,然后从以下消息开始:
WARN NettyRpcEndpointRef: Error sending message [message = Heartbeat(driver,[Lscala.Tuple2;@dac44da,BlockManagerId(driver, localhost, 46158))] in 1 attempts
org.apache.spark.rpc.RpcTimeoutException: Futures timed out after [10 seconds]. This timeout is controlled by spark.executor.heartbeatInterval
Run Code Online (Sandbox Code Playgroud)
最后失败并出现此错误:
ERROR ActorSystemImpl: Uncaught fatal error from thread [sparkDriverActorSystem-scheduler-1] shutting down ActorSystem [sparkDriverActorSystem]
java.lang.OutOfMemoryError: GC overhead limit exceeded
Run Code Online (Sandbox Code Playgroud)
我使用以下命令在 spark-shell 中运行它:
spark-shell --packages mysql:mysql-connector-java:5.1.26 org.slf4j:slf4j-simple:1.7.21 --driver-memory 12G
val dataframe_mysql = sqlContext.read.format("jdbc").option("url", "jdbc:mysql://.../table").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "...").option("user", "...").option("password", "...").load()
dataframe_mysql.saveAsParquetFile("name.parquet")
Run Code Online (Sandbox Code Playgroud)
我将最大执行程序内存限制为 12G。有没有办法强制将镶木地板文件写入“小”块以释放内存?
这可能是一个愚蠢的问题,但我还没有找到答案.我实现了GeoDjango和一个PointField,所以在管理页面我尝试创建一个新对象,但它总是告诉我坐标不正确,页面上有一个像textfield这样的字段,但我不知道是哪种格式适合坐标.
我必须隐藏此字段以插入来自谷歌地图的坐标,但如果我不知道格式......那就很难了.
对所有人都有好感.
我已经构建了一个小的ruby webservice,在此我已经实现了cancan授权.
我按照本教程.问题是,当他们向我的网站注册基本角色级别时,我找不到向用户分配的方式.
我发现用复选框做这个,但这不是我想要的.我的想法是将这个赋值直接放入registrations_controller中,但是我没能保存这个角色.
我希望有人可以帮助我.
谢谢.
对于我的应用程序,我必须在谷歌地图上找到一个点的位置,只知道它位于其他2个点和捕获坐标的时间(以毫秒为单位)之间.
在我的代码中,假设A和B为给定点,X为要查找的点,I:
计算A和B之间的距离
根据时间我发现从A到B的速度(以微米/毫秒为单位)
我找到了从A点到X点的距离(使用时间和速度)
使用类似的三角形规则,我从点A计算点X的纬度和经度
此工作流程会在地图上显示错误,因此,X标记通常不在A和B标记之间.
我怎样才能使它更好用?它是地球球形的一个问题吗?
谢谢你们.
这是代码:
int ax = oldPoint.getLatitude();
int ay = oldPoint.getLongitude();
int bx = currentPoint.getLatitude();
int by = currentPoint.getLongitude();
long at = oldPoint.getDataRilevamento(); //get time first point
long bt = currentPoint.getDataRilevamento(); // get time second point
long xt = x.getDate(); // time of point to find
int c1 = bx-ax;
int c2 = by-ay;
double hyp = Math.sqrt(Math.pow(c1, 2) + Math.pow(c2, 2));
double vel = hyp / (bt-at);
double pos = vel*(xt - …Run Code Online (Sandbox Code Playgroud) 我收到了这个错误,我不知道为什么:
Reverse for 'buildings.views.generate' with arguments '()' and keyword arguments '{'new_id': -1}' not found.
Run Code Online (Sandbox Code Playgroud)
这是我的urls.py(的一部分):
url(r'^buildings/generate/new_building(?P<new_id>\d+)', 'buildings.views.generate'),
Run Code Online (Sandbox Code Playgroud)
风景:
@login_required
def generate(request, new_id):
session = {}
if new_id == -1:
other_buildings = Building.objects.filter(utente=request.user, pronto=False)
if other_buildings.length > MAX_TEMPORARY_BUILDINGS:
return redirect('buildings.views.index')
else:
building = Building(utente=request.user, pronto=False)
building.save()
return redirect('buildings.views.generate', building_id=building)
elif new_id >=0:
building = Building.objects.filter(pk=new_id)
if building.utente != request.user:
raise Http404
elif building.pronto:
return redirect('buildings.views.detail', building_id=new_id)
elif building.nome == None:
buildings= Building.objects.filter(pronto=True).order_by('utente')
session['buildings'] = buildings
session['building'] = building
else:
raise Http404 …Run Code Online (Sandbox Code Playgroud)