我是django的新手并使用构建REST API django-rest-framework.我已经编写了一些代码来检查用户是否提供了一些参数.但是这很难看if conditions,所以我想重构它.Below是我写的代码请建议如何重构它.
我正在寻找一些基于django的验证.
class AssetsViewSet(viewsets.ModelViewSet):
queryset = Assets.objects.using("gpr").all()
def create(self, request):
assets = []
farming_details = {}
bluenumberid = request.data.get('bluenumberid', None)
if not bluenumberid:
return Response({'error': 'BlueNumber is required.'})
actorid = request.data.get('actorid', None)
if not actorid:
return Response({'error': 'Actorid is required.'})
asset_details = request.data.get('asset_details', None)
if not asset_details:
return Response({'error': 'AssetDetails is required.'})
for asset_detail in asset_details:
location = asset_detail.get('location', None)
if not location:
return Response({'error': 'location details is required.'})
assettype = asset_detail.get('type', None)
if …Run Code Online (Sandbox Code Playgroud) 我在mailboxer我的rails应用程序中使用gem,并且我想订购我的收件箱消息,以便当用户收到新消息时,我想要通知或跟踪哪些消息已被读取,哪些消息未被读取并订购消息,以在页面顶部显示未读/新消息.
这是我的对话控制器
class ConversationsController < ApplicationController
before_action :get_mailbox
before_action :get_conversation, except: [:index]
def index
@unread_messages = @mailbox.inbox(unread: true).count
@conversations = @mailbox.inbox({page: params[:page], per_page: 10})
end
private
def get_conversation
@conversation ||= @mailbox.conversations.find(params[:id])
end
def get_mailbox
@mailbox ||= current_user.mailbox
end
end
Run Code Online (Sandbox Code Playgroud)
我试图通过以下方式订购邮件:
@conversations = @mailbox.inbox({page: params[:page], per_page: 10}).joins(:receipts).select("mailboxer_conversations.*, mailboxer_receipts.*").order('mailboxer_receipts.is_read')
Run Code Online (Sandbox Code Playgroud)
但它没有奏效.
请提出解决方案.
我是 C++ 的新手,我已经声明了一组集合:
std::set< std::set<int> > return_moves;
Run Code Online (Sandbox Code Playgroud)
并在其中推送了一些值。我想访问这个集合的第一个元素,以便我可以计算该内部集合中的元素数量。我正在努力让它过去
return_moves.begin().size()
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
set_diff.cpp: In function ‘int main()’:
set_diff.cpp:62:47: error: ‘std::set<std::set<int> >::iterator {aka struct std::_Rb_tree_const_iterator<std::set<int> >}’ has no member named ‘size’
Run Code Online (Sandbox Code Playgroud)
请帮我纠正我的语法。
我已经使用自己的用户池设置了 AWS cognito,但是当我使用有效的电话号码创建用户时,我没有在该电话上收到验证短信。我还创建了角色以允许 Amazon Cognito 发送 SMS 消息。请帮助我调试问题,如果需要更多详细信息,请告诉我。
我想在一个单一的请求中从石墨中获取不同计数器的数据,如: -
summarize(site.testing_server_2.triggers_unknown.count,'1hour','sum')&format=json
summarize(site.testing_server_2.requests_failed.count,'1hour','sum')&format=json
summarize(site.testing_server_2.core_network_bad_soap.count,'1hour','sum')&format=json
Run Code Online (Sandbox Code Playgroud)
等等.还有20多个.
但我不想取
summarize(site.testing_server_2.module_xyz_abc.count,'1hour','sum')&format=json
Run Code Online (Sandbox Code Playgroud)
在那个请求中我该怎么做?
这是我试过的:
summarize(site.testing_server_2.*.count,'1hour','sum')&format=json&from=-24hour
Run Code Online (Sandbox Code Playgroud)
它也获取'module_xyz_abc'的json数据,但我不想要.
我在我的ruby on rails应用程序中使用'devise'进行密码验证.一旦我成功登录并关闭浏览器并打开一个新的浏览器窗口,我仍然登录.假设我使用Chrome,我关闭所有chrome实例,然后打开一个新的.我仍然登录.当我在做IE和Firefox时也是如此.
我会假设关闭窗口并打开一个新窗口应该在服务器和浏览器之间建立一个新的会话不是吗?如果不是我如何实现这一目标?
我曾经尝试点击浏览器窗口onbeforeunload事件上的注销按钮,但它不起作用,因为它在任何表单提交或链接点击时注销应用程序.
window.onbeforeunload = function() {
$('#logout_cls').click();
};
Run Code Online (Sandbox Code Playgroud)
并尝试向AJAX会话控制器发送请求以销毁用于清除会话的操作.
jQuery(window).bind(
"close",
function(event) {
$.ajax({
type: 'DELETE',
dataType: 'json',
url: $('#logout_cls').attr('href')
});
});
Run Code Online (Sandbox Code Playgroud)
但这一切都行不通.
我有两个单独的应用程序在Heroku上运行,并指向同一个数据库,第一个负责user interface和第二个的admin interface,我使用sidekiq与redis后台作业处理,我增加了一个工人,我能够通过设置共享"的Redis服务器"环境变量指向相同的Redis提供Addon,现在我也想分享worker,因为添加额外的worker会花费两倍.
请建议,这是否可能?
我在我的本地机器上安装了mysql-server和mysql-workbench,其中Ubuntu 16.04作为操作系统.我可以通过CLI连接到mysql-server,但不能通过mysql-workbench连接.
mysql --version
mysql Ver 14.14 Distrib 5.7.12, for Linux (x86_64) using EditLine wrapper
mysql-workbench --version
MySQL Workbench CE (GPL) 6.3.6 CE build 511
Run Code Online (Sandbox Code Playgroud)
当我尝试连接到mysql-server时,我一直从mysql-workbench得到这个错误.
Unsupported option provided to mysql_options()
Run Code Online (Sandbox Code Playgroud)
请帮助我理解我做错了解决这个问题,即通过mysql-workbench连接到mysql-server.
我有一个Profile模型,它有许多属性,如电子邮件,图像,年龄,地址等.最终用户可以将某些属性设为私有,以便其他用户无法查看.我通过向表中添加一列private_attr并将其序列化以存储类似的哈希来解决此问题: -
{email: true, address: true, age: false }
Run Code Online (Sandbox Code Playgroud)
这里作为具有值的密钥的属性true被认为是私有的,并且除了这些属于谁之外不向用户显示.
我想知道这是解决这个问题的最佳方法,还是有其他办法.提前致谢.
我正在构建一个rails 5部署的应用程序heroku.我想用来AWS congnito实现单点登录,但没有足够的例子来实现它.我devise用于身份验证.现在我的目标是让我的所有用户AWS cognito都使用我的rails应用程序进行身份验证.
这是我在AWS congnito上使用rails找到的唯一资源,我正在寻找一些示例应用程序或链接到工具或ruby API文档来实现这一目标.
请帮忙.
根据Bala答案进行更新
require 'aws-sdk'
ENV['AWS_ACCESS_KEY_ID'] = 'XXXXXXXXXXXXXXXXX'
ENV['AWS_SECRET_ACCESS_KEY'] = 'XXXX+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
region_name = 'us-east-1'
endpoint = 'cognito-idp.us-east-1.amazonaws.com'
client = Aws::CognitoIdentityProvider::Client.new(
region: region_name
)
resp = client.admin_create_user({
user_pool_id: "us-east-1_iD7xNHj0x", # required
username: "Test", # required
user_attributes: [
{
name: "email", # required
value: "sachin.singh@example.com",
},
],
validation_data: [
{
name: "Email", # required
value: "AttributeValueType",
},
],
temporary_password: "PasswordType",
force_alias_creation: false,
message_action: "RESEND", …Run Code Online (Sandbox Code Playgroud) ruby ×6
devise ×2
heroku ×2
activerecord ×1
aws-cognito ×1
c++ ×1
django ×1
django-views ×1
graphite ×1
javascript ×1
linux ×1
mailboxer ×1
mysql ×1
python ×1
session ×1
set ×1
sidekiq ×1
sms ×1
ubuntu ×1
ubuntu-16.04 ×1
worker ×1