小编Sac*_*ngh的帖子

在viewsets.ModelViewSet上获取params验证

我是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)

python django django-views django-rest-framework

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

如何订购邮箱收件箱?

我在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)

但它没有奏效.

请提出解决方案.

ruby ruby-on-rails ruby-on-rails-4 mailboxer

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

如何在c ++中仅获取集合的第一个元素

我是 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)

请帮我纠正我的语法。

c++ set

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

AWS Cognito 不发送验证短信

我已经使用自己的用户池设置了 AWS cognito,但是当我使用有效的电话号码创建用户时,我没有在该电话上收到验证短信。我还创建了角色以允许 Amazon Cognito 发送 SMS 消息。请帮助我调试问题,如果需要更多详细信息,请告诉我。

sms amazon-web-services aws-cognito

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

如何使用正则表达式从石墨中获取数据?

我想在一个单一的请求中从石墨中获取不同计数器的数据,如: -

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 graphite

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

如何在浏览器关闭时清除设计会话?

我在我的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)

但这一切都行不通.

javascript ruby session ruby-on-rails devise

8
推荐指数
2
解决办法
4063
查看次数

如何在heroku上的两个不同的应用程序之间共享工作者?

我有两个单独的应用程序在Heroku上运行,并指向同一个数据库,第一个负责user interface和第二个的admin interface,我使用sidekiqredis后台作业处理,我增加了一个工人,我能够通过设置共享"的Redis服务器"环境变量指向相同的Redis提供Addon,现在我也想分享worker,因为添加额外的worker会花费两倍.

请建议,这是否可能?

ruby ruby-on-rails heroku worker sidekiq

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

mysql_options()提供不支持的选项

我在我的本地机器上安装了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.

mysql linux ubuntu mysql-workbench ubuntu-16.04

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

设置Profile模型的一些属性的最佳方法是公共(可见)还是私有(不可见)给其他用户?

我有一个Profile模型,它有许多属性,如电子邮件,图像,年龄,地址等.最终用户可以将某些属性设为私有,以便其他用户无法查看.我通过向表中添加一列private_attr并将其序列化以存储类似的哈希来解决此问题: -

{email: true, address: true, age: false }
Run Code Online (Sandbox Code Playgroud)

这里作为具有值的密钥的属性true被认为是私有的,并且除了这些属于谁之外不向用户显示.

我想知道这是解决这个问题的最佳方法,还是有其他办法.提前致谢.

ruby serialization activerecord ruby-on-rails

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

Ruby on rails + aws congnito的例子

我正在构建一个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 ruby-on-rails heroku devise amazon-cognito

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