小编kur*_*tgn的帖子

在sqlalchemy中设置server_default失败

这是我希望SQLAlchemy要做的事情:

blesk_dev=# alter table address add column reg_at timestamp without time zone default (now() at time zone 'utc');
ALTER TABLE
Run Code Online (Sandbox Code Playgroud)

也就是说,我想为列设置默认的UTC时间。如上所示,在纯psql中,此操作成功。

这就是SQLAlchemy代码中的样子:

reg_at = db.Column(db.DateTime, server_default="(now() at time zone 'utc')")
Run Code Online (Sandbox Code Playgroud)

但是当我尝试迁移时,我得到了:

sqlalchemy.exc.ProgrammingError: (ProgrammingError) syntax error at or near "utc"
LINE 1: ...STAMP WITHOUT TIME ZONE DEFAULT '(now() at time zone 'utc')'
                                                                 ^
 "ALTER TABLE address ADD COLUMN reg_at TIMESTAMP WITHOUT TIME ZONE DEFAULT '(now() at time zone 'utc')'" {}
Run Code Online (Sandbox Code Playgroud)

因此,我认为单引号/双引号存在问题。

我试过了

"(now() at time zone \'utc\')"
Run Code Online (Sandbox Code Playgroud)

但这会给我同样的错误。

然后,我换了引号:

'(now() at …
Run Code Online (Sandbox Code Playgroud)

python postgresql sqlalchemy

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

如何使用垂直分隔线绘制Google折线图?

我有几个谷歌折线图(实际上,其中包括线图和areacharts的combocharts)需要有一个垂直的"之前和之后"类型的标记,如下所示: 在此输入图像描述

我该怎么做呢?

我在文档中看到我可以自定义单个点(比如使它成为一个大星)作为标记,但是如果有一种方法可以用垂直线来做,那就更好了.

google-visualization

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

pycharm - 无法配置解释器来运行划痕

我使用 virtualenvwrapper 在 Pycharm 中创建了一个 Django 项目。我的蟒蛇位于~/.virtualenvs/django_cpa. 后来我将我的 virtualenv 重命名为pubscout,并将 Pycharm 的 Python 解释器更改为/Users/1111/.virtualenvs/pubscout/bin/python. 这适用于项目中的文件:

在此处输入图片说明

但是,当我尝试从该项目的环境中运行暂存文件时,我收到一个错误,表明 Pycharm 仍在尝试使用旧的解释器路径进行暂存:

在此处输入图片说明

我该如何解决?

python django pycharm

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

django RequestFactory丢失了url kwargs

我正在尝试从使用Django Test Client切换到RequestFactory来加速我的测试.但是,RequestFactory生成的请求不适合kwargs视图.

示例:这是我的观点

class SomeView(View):
    def get(self, request, *args, **kwargs):
        return JsonResponse({'your kwargs': str(kwargs)})
Run Code Online (Sandbox Code Playgroud)

用urlconf

url(r'^some_view/(?P<some_kwarg>[\-0-9a-fA-F]+)/$',
    views.SomeView.as_view(),
    name='some_view'),
Run Code Online (Sandbox Code Playgroud)

和两个测试:

def test_different_kwargs():

    c = Client()
    response = c.get(
        reverse('bots:some_view',
                kwargs={'some_kwarg': '12345'}),
    )
    print('\n\nResponse for TestClient: ', response.content.decode())

    rf = RequestFactory()
    request = rf.get(
        reverse('bots:some_view',
                kwargs={'some_kwarg': '12345'}),
    )
    response = SomeView.as_view()(request)
    print('\n\nResponse for RequestFactory: ', response.content.decode())
Run Code Online (Sandbox Code Playgroud)

他们生产的是:

Response for TestClient:  {"your kwargs": "{'some_kwarg': '12345'}"}
Response for RequestFactory:  {"your kwargs": "{}"}
Run Code Online (Sandbox Code Playgroud)

那么,RequestFactory如果丢失了url kwargs,有什么意义呢?或者有办法将它们以某种方式放入视图中吗?

python django

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

Python,Flask,SQLAlchemy:无法从模型导入

我有一个奇怪的问题.

我正在使用SQLAlchemy构建Flask应用程序.我有一个模型文件,即models.py.我有一个用户模型.

如果我打开"views.py"并插入一个字符串

import models
Run Code Online (Sandbox Code Playgroud)

然后使用用户模型

u=models.User.query.filter_by(name='John',password='Doe').first()
Run Code Online (Sandbox Code Playgroud)

一切正常.

但如果不是"进口模式",我会说

from models import User
Run Code Online (Sandbox Code Playgroud)

Python崩溃并说:

ImportError: cannot import name User
Run Code Online (Sandbox Code Playgroud)

这怎么可能?

python import sqlalchemy models

4
推荐指数
2
解决办法
4695
查看次数

django-oscar 和多租户

我正在为我们业务的电子商务部分研究 Django Oscar。所需的功能之一是我们需要在一个 Oscar 实例上托管多个商店,即每个店主都应该管理自己的产品、自己的合作伙伴等。并且不应该访问其他所有者的内容。

Google 表示从 0.6 版本开始就有此功能:https://django-oscar.readthedocs.io/en/releases-0.6/howto/multi_dealer_setup.html

但当前版本(截至今天的1.5)并没有提到这个功能。奥斯卡后期版本如何实现多租户?

django django-oscar

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

mypy:创建一个接受子类实例列表的类型

假设我有一个Child类是类的子Parent类,以及一个接受Parent子类实例列表的函数:

from typing import List


class Parent:
    pass


class Child(Parent):
    pass


def func(objects: List[Parent]) -> None:
    print(objects)


children = [Child()]
func(children)
Run Code Online (Sandbox Code Playgroud)

mypy在此运行会产生错误:

 error: Argument 1 to "func" has incompatible type "List[Child]"; expected "List[Parent]"
Run Code Online (Sandbox Code Playgroud)

如何为此创建类型?

PS有一种方法可以使用Sequence类型修复此特定错误:

def func(objects: Sequence[Parent]) -> None:
    print(objects)
Run Code Online (Sandbox Code Playgroud)

但这在其他类似情况下无济于事。我需要一个List,而不是一个Sequence

python mypy

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

在flask-admin中的ModelView中自定义窗体的窗口小部件

我有一个模特News:

class News(db.Model):
    __tablename__ = 'news'
    id = db.Column(db.Integer, primary_key=True)
    content = db.Column(db.String)
    active_from = db.Column(db.DateTime)
    active_until = db.Column(db.DateTime)
Run Code Online (Sandbox Code Playgroud)

它被整合成flask-admin如此:

class MyModelView(ModelView):
    def is_accessible(self):
        return current_user.usergroup.name == 'admin'

admin.add_view(MyModelView(News, db.session))
Run Code Online (Sandbox Code Playgroud)

但当我打开我的管理页面时,我看到了一个input type='text'小部件news.content.我怎么能把它放在textarea那里呢?

python flask flask-admin

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

telethon 库:如何通过电话号码添加用户

我正在研究 Telegram 的 Telethon 库,它可以使用 Telegram API 充当 Telegram 客户端(重要提示:这是Telegram 客户端 API,而不是 Bot API)。

我需要的功能是创建群聊并邀请用户。当我添加联系人列表中的某人时,这很好用:

import telethon
from telethon.tl.functions.messages import CreateChatRequest
client = telethon.TelegramClient('some_session', 'key', '6284f5acf91b03somehash441ac9eef319')
client.start()
client(CreateChatRequest(['+79297226653'], 'Test Group')) # number from my contact list
Run Code Online (Sandbox Code Playgroud)

但是,如果我传递的号码不在我的联系人列表中(我确定该电话号码已在 Telegram 中注册),则此操作会中断

  File "/Users/1111/.virtualenvs/inviter-WB5rPISo/lib/python3.6/site-packages/telethon/telegram_client.py", line 1680, in _get_entity_from_string
    'Cannot turn "{}" into any entity (user or chat)'.format(string)
TypeError: Cannot turn "+79291101517" into any entity (user or chat)
Run Code Online (Sandbox Code Playgroud)

我怀疑这只CreateChatRequest适用于我的PeerUser手机,即此方法禁止使用非对等电话。

所以问题是,如果某人不是我的联系人之一,我如何将他添加到群聊中?

python telegram telethon

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

反应选择和打字稿:类型 'string' 不可分配给类型 'ValueType&lt;OptionTypeBase&gt;'

我正在尝试创建一个使用 react-select 和 typescript 的示例组件。

为此,我创建了一个功能组件并添加了react-select docs 中的默认示例:

const options = [
    {value: 'chocolate', label: 'Chocolate'},
    {value: 'strawberry', label: 'Strawberry'},
    {value: 'vanilla', label: 'Vanilla'},
];

const MyComponent = () => {

    const [selectedOption, setSelectedOption] = useState('chocolate');

    const handleChange = (option: string) => {
        setSelectedOption(option);
    };

    return (
        <Select
            value={selectedOption}
            onChange={(option) => handleChange(option)}
            options={options}
        />
    );

};
Run Code Online (Sandbox Code Playgroud)

但是,这给了我一个错误:

 Overload 1 of 2, '(props: Readonly<Pick<Props<OptionTypeBase>, string | number> & Props<OptionTypeBase> & Props<OptionTypeBase>>): StateManager<...>', gave the following error.
    Type 'string' is …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs react-select

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

不懂懒惰的正则表达式

假设我们有一个字符串,1abcd1efg1hjk1lmn1并希望在1-s 之间找到东西.我们做的是

re.findall('1.*?1','1abcd1efg1hjk1lmn1')
Run Code Online (Sandbox Code Playgroud)

得到两个结果

['1abcd1', '1hjk1']
Run Code Online (Sandbox Code Playgroud)

好吧,我明白了.但如果我们这样做

re.findall('1.*?1hj','1abcd1efg1hjk1lmn1')
Run Code Online (Sandbox Code Playgroud)

为什么它在1s而不是一个之间抓两个间隔?为什么我们得到['1abcd1efg1hj']而不是['1efg1hj']?这不是懒惰应该做的吗?

python regex lazy-evaluation

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

如何在测试 django 时禁用 csrf?

我在使用 csrf 令牌测试视图时遇到问题。

这段代码

class ViewTests(TestCase):
    def test_bets_view(self):
        login_page = self.client.get('/users/login/')
        print(login_page.content)
Run Code Online (Sandbox Code Playgroud)

返回带有 CSRF 隐藏输入的 HTML。

我需要将这个东西与以前的 HTML 进行比较,

expected_html = render_to_response('login.html',
                                   dictionary={'form': LoginForm()})
Run Code Online (Sandbox Code Playgroud)

没有隐藏的 CSRF 输入。所以断言失败。

如何在测试客户端中禁用 CSRF 渲染?

testing django csrf

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

悬停在另一个对象上的显示图标

我希望我的链接在悬停时在它们旁边显示一个字体 - 真棒图标.整条线看起来像这样:

<a href="#" class="link">link</a> <span class="someicon"></span>
Run Code Online (Sandbox Code Playgroud)

当课程"链接"悬停时,如何使课程"someicon"可见?

编辑:

谢谢大家,我想出了一个更好的解决方案.不需要额外的类和DOM元素:

.link:hover::after {
    display: inline-block;
    font: normal normal normal 14px/1 FontAwesome;
    font-size: inherit;
    text-rendering: auto;
    content: "\00a0\f040";
    text-decoration: none;
}
Run Code Online (Sandbox Code Playgroud)

html css

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