在我的 Django 1.9 项目中,我试图输出如下内容:
return MyModel.objects.values(...).\
annotate(flg = ExpressionWrapper(F('rgt') - F('lft') > 0,
output_field = BooleanField()))
Run Code Online (Sandbox Code Playgroud)
这会产生AttributeError: 'bool' object has no attribute 'resolve_expression'错误。
我尝试使用Case-when语法重写它:
return MyModel.objects.values(...)\
.annotate(flg = Case(When(F('rgt') - F('lft') > 0, then = True,
output_field = BooleanField())))
Run Code Online (Sandbox Code Playgroud)
这一次,我以TypeError: __init__() takes either a Q object or lookups as keyword arguments错误告终。我搞不清楚了。有任何想法吗 ?
我正在做 Django-Android 交互的第一步,我对 FCM 技术如何工作的逻辑有点困惑。我已经通过 pip 安装了 django-fcm,现在我的目标是通过 FCM 令牌向 Android 设备发送通知,该令牌已由 Android 设备通过 REST 资源发送到服务器。
第三方 Android 开发人员告诉我他们只会给我 FCM 令牌,我应该能够发送通知。我对文档中的以下代码片段感到有些困惑
devices = FCMDevice.objects.all()
Run Code Online (Sandbox Code Playgroud)
什么是FCM设备?以及示例中的 JSON 代码如何:
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification" : {
"body" : "great match!",
"title" : "Portugal vs. Denmark",
"icon" : "myicon"
}
}
Run Code Online (Sandbox Code Playgroud)
...与此相关:
device = FCMDevice.objects.all().first()
device.send_message("Title", "Message")
device.send_message(data={"test": "test"})
device.send_message(title="Title", body="Message", icon=..., data={"test": "test"})
Run Code Online (Sandbox Code Playgroud)
问题是将最简单的通知发送到由其 FCM 令牌标识的 Android 设备的最少代码片段是什么
这个问题很可能会被禁止,因为在我看来,这个论坛似乎是一个询问“为什么它不起作用”类型问题的网站,而不是“做我所做的事情是一个好主意”的网站。然而,我非常关心在我的代码中保持 DRY 性。
我有一个 Django 模板,如下所示:
<ol id = 'task_list'>
{% for item in qs %}
{% include 'list_item.html' with item=item %}
{% endfor %}
</ol>
Run Code Online (Sandbox Code Playgroud)
列表项.html:
<li>
{{item}}
</li>
Run Code Online (Sandbox Code Playgroud)
JS:
$.post('my_view_url', function(response)
$('#container').append(response);
Run Code Online (Sandbox Code Playgroud)
姜戈视图:
def my_view(response)
#...
return render_to_response('list_item.html',....)
Run Code Online (Sandbox Code Playgroud)
这样,list_item.html可以帮助我使用相同的 HTML 代码来初始呈现现有元素和客户端呈现新创建的项目。
{% include %}速度相当慢。问题是:在对大量数据进行分页呈现的情况下,此代码模式是否不会成为性能杀手?
附加说明:
AFAIK,{% block %} 比 {% include %} 更快。但我不知道如何使用block.
我的目标是创建一个查询集的克隆,然后将其插入到数据库中。按照这篇文章的建议,我有以下代码:
qs_new = copy.copy(qs)
MyModel.objects.bulk_create(qs_new)
Run Code Online (Sandbox Code Playgroud)
但是,使用此代码我遇到了duplicate primary key错误。至于现在,我只能想出以下解决方法:
qs_new = copy.copy(qs)
for x in qs_new:
x.id = None
MyModel.objects.bulk_create(qs_new)
Run Code Online (Sandbox Code Playgroud)
问题:我可以在不经过循环的情况下实现此代码片段吗?
我的目标是覆盖obtain_jwt_token以更好地控制程序的返回值,在文档中我只发现了一个关于如何执行此操作的奇怪而粗略的信息:
请注意,默认的 acquire_auth_token 视图明确使用 JSON 请求和响应,而不是在您的设置中使用默认的渲染器和解析器类。如果您需要一个自定义版本的获取_auth_token 视图,您可以通过覆盖获取验证令牌视图类来实现,并在您的 url conf 中使用它
至于现在,我的尝试是这样的:
urlpatterns = [
url(r'^api-token-auth/', my_customized_view),
]
class Foo(ObtainAuthToken):
def post(self):
# here goes my customized code
my_customized_view = Foo.as_view()
Run Code Online (Sandbox Code Playgroud)
赔率是我的代码看起来很愚蠢,而我只是失去了尝试谷歌它。我在 Djagno 方面的经验很少,所以请帮我解决这个问题!