小编Ada*_*dam的帖子

Django annotate()错误AttributeError:'CharField'对象没有属性'resolve_expression'

您好我想将更多字段连接到django,但即使是这个简单的代码:

    Project.objects.annotate(
        companyname=Concat('company__name',Value('ahoj')),output_field=CharField()    
    )
Run Code Online (Sandbox Code Playgroud)

给我一个错误:

AttributeError: 'CharField' object has no attribute 'resolve_expression'
Run Code Online (Sandbox Code Playgroud)

追溯:

  File "/root/MUP/djangoenv/lib/python3.4/site-packages/django/db/models/manager.py", line 122, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/root/MUP/djangoenv/lib/python3.4/site-packages/django/db/models/query.py", line 908, in annotate
    clone.query.add_annotation(annotation, alias, is_summary=False)
  File "/root/MUP/djangoenv/lib/python3.4/site-packages/django/db/models/sql/query.py", line 986, in add_annotation
    annotation = annotation.resolve_expression(self, allow_joins=True, reuse=None,
AttributeError: 'CharField' object has no attribute 'resolve_expression'
Run Code Online (Sandbox Code Playgroud)

python django

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

当取消引用(运算符*)按值返回时,箭头运算符(operator->)返回类型

我正在编写一个InputIterator,它实现了operator*和operator->等.

我的operator*返回一对(vector)元素的引用.因此,运算符*按值返回.

根据cppreference:

运算符 - >的重载必须返回一个原始指针,或返回一个对象(通过引用或按值),而运算符 - >又被重载.

那我该怎么回事?

我无法返回原始指针; 这对必须以某种方式返回.所以可能有一些包含operator->的包装器?它是否存在于标准库中,或者通常如何进行?

c++ iterator

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

结构化数据成员的decltype,使用结构化绑定

我有一个模板,该模板的类型可以在结构上绑定到两个别名(可以是一个元组,也可以是一个结构)。我需要别名指向的两个变量的类型。

template <typename T>
T obj;
// type of a/b in auto&& [a, b] = obj ?
Run Code Online (Sandbox Code Playgroud)

在实际使用结构化绑定之前,我需要知道类型:

template <typename S>
void fn(ranges::any_view<S> range_of_tuple_or_struct_or_pair) {

    last_from = std::numeric_limits<?????>::max();

    // ????? should be the type of from (or to, they should be the same types) of: 
    //     auto&& [from, to] = <range element>

    for (auto&& [from, to] : range_of_tuple_or_struct_or_pair) {
         if (from != last_from) {
             ...;
             last_from = from;
         }
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ structured-bindings

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

如何在O(1)时间内将列表中的最后一项移到前面?

我的代码看起来像这样,其中heaplist:

 heap[0] = heap.pop()
Run Code Online (Sandbox Code Playgroud)

问题是弹出唯一的项目时它不起作用.根据python wiki,弹出最后一个元素是O(1).(我也想删除最后一个元素)

到目前为止,我想出了什么:

last_element = heap.pop()  # I don't want to catch potential IndexError here
try:
    heap[0] = last_element
except IndexError:
    heap.append(last_element)
Run Code Online (Sandbox Code Playgroud)

这要长得多

或这个

if len(heap) != 1:
    heap[0] = heap.pop()
Run Code Online (Sandbox Code Playgroud)

哪个应该慢一些.

是否有更多的pythonic方式来做到这一点?内部python可能甚至没有调整数组的大小.

更新:我需要O(1)访问给定indeces的元素(因此它不能是链表).

python heap python-3.x

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

CMake添加库libpq(postgreSQL)mac c ++ clion

令我感到惊讶的是,没有正式的c ++库用于追赶标准的postgres.所以我必须使用原来的c lipq.但是如何告诉链接器将其包含在CMake中?我希望它在CMake中只是一条短线.

我所看到的只是find_package(甚至包装是什么?,在快速JetBrains的CMake教程中提到,但在官方中没有提到),target_link_libraries,find_library.

我所要求的就像在Python(跨平台)中pip install my_library那样import my_library.

我该怎么做?

c++ postgresql cmake clion

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

对于2D游戏,C#形式太慢了吗?

我用Python + Pygame制作了这个游戏,但速度很慢,所以我用C#和它的形式进行了尝试.它甚至更慢!我在i5 radeon 6770m NTB上只获得了20fps,比我希望这个游戏运行的硬件快了数百万倍,我还没有完成游戏,它只是渲染一张地图.这是一个用缓慢的几MHz处理器运行的游戏的翻版.它的地图包含400x200瓷砖和相机显示仅79*79.我还安装了团结4.5; 是否值得学习它,它会给我带来显着的性能提升 - 如果有人知道它我将如何做一个由600*400瓷砖随机组成的地图,无论是深色瓷砖还是亮色; 它必须是"可碰撞的"?或者我在形式上做错了?

public void render()
    {

        Bitmap frame = new Bitmap(Game.CANVAS_WIDTH, Game.CANVAS_HEIGHT);
        Graphics frameGraphics = Graphics.FromImage(frame);

        TextureID[,] textures = Background.Blocks;

        while (true)
        {

            //frameGraphics.FillRectangle(new SolidBrush(Color.Aqua), 0, 0, Game.CANVAS_WIDTH, Game.CANVAS_HEIGHT);
            for (int x = 0; x < Game.AR_WIDTH; x++)
            {
                int xx = x * Game.TILE_SIDE - game.green_tank_pos[0] + Game.DIFF;
                if (xx < 0) continue;
                if (xx > Game.CANVAS_WIDTH) break;

                for (int y = 0; y < Game.AR_HEIGHT; y++)
                {
                    int yy = …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine winforms

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