标签: extra

在Django中的ValuesQuerySet上使用extra()

我正在尝试用两个本身聚合的值来计算百分比.解释我所追求的SQL查询如下:

SELECT (SUM(field_a) / SUM(field_b) * 100) AS percent
FROM myapp_mymodel 
GROUP BY id
ORDER BY id
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下内容来构造QuerySet,但不幸的是它不包含额外的字段:

MyModel.objects.values('id').annotate(
   sum_field_a=Sum('field_a'),
   sum_field_b=Sum('field_b')).extra(
      select={'percent': 'sum_field_a / sum_field_b * 100'})
Run Code Online (Sandbox Code Playgroud)

令我恼火的是 - 根据Django文档 - 这似乎是要走的路:

当values()子句用于约束结果集[...]中返回的列而不是为原始QuerySet中的每个结果返回带注释的结果时,原始结果将根据指定字段的唯一组合进行分组在values()子句中.然后为每个唯一组提供注释; 注释是在组的所有成员上计算的.

资料来源: http ://docs.djangoproject.com/en/dev/topics/db/aggregation/#values

如果在extra()子句之后使用values()子句,则extra()中的select参数定义的任何字段都必须显式包含在values()子句中.但是,如果在values()之后使用extra()子句,则select将添加的字段将自动包含在内.

资料来源: http ://docs.djangoproject.com/en/dev/ref/models/querysets/#values

sql django django-queryset extra

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

团队成员为git添加了数百个megs

可能重复:
如何删除github上的提交?

因此,我们项目的团队成员已经承诺并向我们的git项目存储库推送了700多万个废话...她认为她只添加了2个图像,但不知何故最终将她桌面的全部内容复制到git文件夹并以某种方式提交它.我不知道为什么她认为2张照片上传20分钟并不奇怪...

无论如何,我现在处于困境,作为这个项目的负责人.就我而言,我有两个选择,我不喜欢任何一个

  1. 我可以从bitbucket中删除存储库,然后用我想要的文件重新启动它.这将删除所有以前的编辑,因为只有我想要的文件的当前版本可用

  2. 我可以删除错误的数据并推送更改.只有我们想要的文件才会被进一步管理,但是她放在那里的所有额外的麻烦将永远存在于git中,这使我们的项目膨胀100倍.

有没有办法永远删除提交,就好像它从未发生过一样?除了更多的补救性git训练之外,管理这种打嗝的最佳方法是什么...

git extra

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

XML解析错误:文档末尾的额外内容

首先,每个人都过得愉快.我有这个脚本来处理我的数据库的登录:http: //pastebin.com/ctUEczRf 我使用pastebin因为它太长而无法使用代码标签.当我运行它它返回我:

This page contains the following errors:

error on line 2 at column 1: Extra content at the end of the document
Below is a rendering of the page up to the first error.
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决它,我之前从未使用过XML.这是与CMS一起提供给我的.

xml parsing extra

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

Android接收共享文本文件但不共享文本内容

我正在制作一个能够上传单个或多个文件或文件夹的应用程序.intent-filter的定义如下:

    <activity android:name=".UploadActivity" android:launchMode="singleTop" android:theme="@style/Theme.Sherlock">
        <intent-filter android:label="@string/upload_intent">
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:mimeType="application/*" />
            <data android:mimeType="audio/*" />
            <data android:mimeType="image/*" />
            <data android:mimeType="media/*" />
            <data android:mimeType="multipart/*" />
            <data android:mimeType="text/*" />
            <data android:mimeType="video/*" />
        </intent-filter>
        <intent-filter android:label="@string/upload_intent">
            <action android:name="android.intent.action.SEND_MULTIPLE" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:mimeType="*/*" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

这适用于Blackmoon文件资源管理器和Android 4.0.3图库.我的应用程序显示在"共享"菜单中.但是,它也会在浏览器中显示,当您长按URL并选择共享页面时.

当我将文本文件发送到我的应用程序时,我得到了这个:

getIntent().getAction() returns Intent.ACTION_SEND
getIntent().getType() returns "text/plain"
getIntent().getScheme() returns null
getIntent().getExtras().getString(Intent.EXTRA_STREAM) returns the filename
Run Code Online (Sandbox Code Playgroud)

但是,从浏览器发送URL会返回相同的内容减去 Intent.EXTRA_STREAM.我可以在代码中轻松检测到这一点并说"嘿,我无法上传文字!" 但我宁愿改变意图过滤器,以便它只在有EXTRA_STREAM时触发.有可能这样做吗?

(我尝试使用android:scheme但不会区分文件和共享的文本字符串,因为它们都是null ...)

android text share intentfilter extra

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

当我回按钮时,前一个Activity中的值丢失,但是当调用this.finish()时则没有

所以我有一个奇怪的问题.我正在进行2项活动.其中一个活动显示一个ListView,其数据通过一个很长的Extra来获取,我用它来通过database.query中的WHERE子句获取结果.单击ListView项时会调用另一个Activity,允许某人向ListView的数据库添加内容.

活动名称是DaysActivity.java(列表视图DayAddActivity.java的活动)和(允许某人添加一天的活动,然后显示在DaysActivity.javaListView中).

我遇到的问题是,当finish() DayAddActivity.java它返回时DaysActivity,ListView仍然完全填充.但是,如果我点击后退按钮DayAddActivity.java(带有我的应用程序图标的操作栏中标题左侧的按钮),当它返回到DaysActivity.java时,ListView为空/消失.

下面是两个代码:

DaysActivity.java:

package com.gauvion.gfit;

import android.annotation.SuppressLint;
import android.app.ListActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;

public class DaysActivity extends ListActivity {

    private DaysDataSource datasource;
    private SimpleCursorAdapter dataAdapter;
    private boolean isEditing = false;
    private Toast toast_deleted;
    private String[] columns = new String[] { MySQLiteHelper.COLUMN_NAME, MySQLiteHelper.COLUMN_DAY };
    private int[] to;
    private long routineDataID;
    private String …
Run Code Online (Sandbox Code Playgroud)

android android-intent extra android-activity

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

qmake:额外的编译器(处理步骤)?

在我基于 qmake 的项目中,我想在编译之前对某些文件运行“xxd”。根据文档,我的 pro 文件中的相关部分如下所示:

SHADERS = shader/tone.frag \
          shader/trans.frag \
          shader/hue.frag

# xxd
xxd.output = ${QMAKE_FILE_NAME}.xxd
xxd.commands = xxd -i ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
xxd.depends = SHADERS
xxd.input = $$SHADERS
xxd.variable_out = HEADERS

QMAKE_EXTRA_COMPILERS += xxd
Run Code Online (Sandbox Code Playgroud)

Qmake 不会抱怨,但它也根本不运行 xxd。我是否必须为要预处理的每个文件创建特殊目标?(生成的*.xxd文件不会我事后编译,只包含在其他cpp文件中)

编辑:在 smokris 的帮助下,这就是我修复 pro 文件中的部分的方法:

# xxd
xxd.output = ${QMAKE_FILE_NAME}.xxd
xxd.commands = xxd -i ${QMAKE_FILE_NAME} > ${QMAKE_FILE_OUT}
xxd.depends = $$SHADERS
xxd.input = SHADERS
xxd.variable_out = HEADERS
Run Code Online (Sandbox Code Playgroud)

compiler-construction qmake extra xxd

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

警告:在不一致的位置观察到包 ID“extras;intel;Hardware_Accelerated_Execution_Manager”

我的模拟器停止工作,它只是显示黑屏,当我尝试使用外部设备时,应用程序不断崩溃,它停止并关闭,然后有一个 haxm 安装程序更新,我尝试了它,但出现了此警告,但它仍然无法工作

尝试过外部设备,尝试安装更新

警告:在不一致的位置观察到包 ID“extras;intel;Hardware_Accelerated_Execution_Manager”

警告:在不一致的位置观察到包 ID“extras;intel;Hardware_Accelerated_Execution_Manager”

hardware android apk extra haxm

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

Django管理页面:可以使用查询集额外字段来排序特定列

因此,查询集中的额外字段可用于向选择查询添加其他列,而后者又可以设置为默认排序.到目前为止,我已经能够实现这一点:创建了一个额外的字段,然后将其设置为默认排序.

qs = qs.extra(select={'natname':"concat('0', nat, name)"}, order_by=['natname'])
Run Code Online (Sandbox Code Playgroud)

现在,在我的管理界面中,我有其他字段{name, nat, location, space, ....},表格中的结果按natname页面加载时排序...完美.

但是现在我想在name现场进行排序,但不是按顺序排序name,我希望它按顺序排序natname.这可能吗?

所以即使natname是一个额外的字段,我想以某种方式绑定列namenatname订购时.

现在,如果我这样做qs.query.__str__(),我会得到sql查询order by natname.当我点击列时name,按更改顺序排序name,但仅针对此特殊情况,我希望它按顺序排序natname.这可能吗?

我已经了解了Django如何为这些自动化管理页面生成标题和视图,<django-installation-path>/contrib/admin但它只引用了此模型中list_display定义的集合ModelAdmin.如果我在那里进行任何更改,则显示的列将在admin-view中更改.

听起来有点令人困惑.如果您需要特殊细节,请随时询问.

谢谢.

django admin sql-order-by django-queryset extra

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

C#DataGridView自动添加一个_Extra_ Row

[Microsoft Visual Studio 2008,Windows 7 Professional 64]

我有一个扩展DataGridViewC#类:

public class DataGridViewTest : DataGridView
Run Code Online (Sandbox Code Playgroud)

此类以编程方式设置列数行数.

我有一个Form应用程序,它创建一个DataGridViewTest实例并将其添加到GroupBox.

DataGridViewTest数和数定义静态成员:

private static int NUM_COLUMNS = 2;
private static int NUM_ROWS = 2;
Run Code Online (Sandbox Code Playgroud)

以下是设置所有内容的代码:

public DataGridViewTest()
{
    for (int i = 0; i < NUM_COLUMNS; i++)
    {
        DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
        column.Name = "Column " + i.ToString();
        this.Columns.Add(column);
    }

    for (int i = 0; i …
Run Code Online (Sandbox Code Playgroud)

c# datagridview rows extra

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

Django QuerySet:用于计数值出现次数的附加字段

我有一个包含 100 个项目的对象,对于每个项目,我需要知道特定内容在该字段中出现的QuerySet次数。contract_numbercontract_number

预期输出示例:

[{'contract_number': 123, 'contract_count': 2}, {'contract_number': 456, 'contract_count': 1} ...]
Run Code Online (Sandbox Code Playgroud)

这意味着值 123 在整个contract_number字段中出现了 2 次。

重要的是:我无法减少项目的数量,因此分组在这里不起作用。

与此等效的 SQL 将是一个附加字段,contract_count如下所示:

 SELECT *,
 (SELECT count(contract_number) FROM table where t.contract_number = contract_number) as contract_count
FROM table as t
Run Code Online (Sandbox Code Playgroud)

问题是如何使用 Python 对象来做到这一点。经过一些研究,我发现对于更复杂的查询,应该使用Queryset 额外方法。以下是我的尝试之一,但结果不是我所期望的

    queryset = Tracker.objects.extra(
    select={
        'contract_count': '''
        SELECT COUNT(*)
        FROM table
        WHERE contract_number = %s
        '''
    },select_params=(F('contract_number'),),)
Run Code Online (Sandbox Code Playgroud)

我的models.py

class Tracker(models.Model):
    contract_number = models.IntegerField()
Run Code Online (Sandbox Code Playgroud)

编辑: 我的问题的解决方案是Subquery()

python sql django django-queryset extra

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