小编lap*_*ira的帖子

同一字段上的 Django REST Framework 和 FileField 绝对 url

默认情况下,DRF 将文件字段或图像字段路径序列化为其相对路径。

就像这个问题Django REST Framework 和 FileField absolute url

我知道可以生成一个名为“file_url”的自定义字段并序列化完整路径。

但是是否可以在同一字段中对其进行序列化?喜欢:

class Project(models.Model):
    name = models.CharField(max_length=200)
    thumbnail = models.FileField(upload_to='media', null=True)

class ProjectSerializer(serializers.HyperlinkedModelSerializer):

    class Meta:
        model = Project
        fields = ( 'id' ,'url', 'name', 'thumbnail')

class ProjectViewSet(viewsets.ModelViewSet):
    queryset = Project.objects.all()
    serializer_class = ProjectSerializer

{
    "id": 1, 
    "url": "http://localhost:8000/api/v1/projects/1/", 
    "name": "Institutional", 
    "thumbnail": "ABSOLUTE URL"
}
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework

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

如何知道我在Phoenix框架中的当前环境

我正在追踪一本凤凰书:

小心.ecto.migrate任务将为您当前的环境迁移数据库.到目前为止,我们一直在运行开发环境.要更改环境,您需要设置MIX_ENV操作系统环境变量.

但是我不知道哪个是mi当前的环境,我打印回显MIX_ENV变量并且它是空的,我怎么能知道我所处的环境和/或从环境变化?

elixir phoenix-framework

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

Pythonic方式检查空字典和空值

我正在使用这些类型的词典,它们可以是或者完全是空的,collection_a或者包含一个单级的嵌套字典,它可能是空的.它没有更多的水平.

collection_a = {}
collection_b = {"test": {}}

print is_empty(collection_a)
print is_empty(collection_b)

def is_empty(collection):
    return not all(collection.values())
Run Code Online (Sandbox Code Playgroud)

要么

def is_empty(collection):
    return not bool(collection.values())
Run Code Online (Sandbox Code Playgroud)

有没有一种独特的方法来检查a或b是否有值?

你可以检查all(collection_b.values())但是它不适用于collection_a,它将返回True

你也可以检查bool(collection_a.values())但是它不适用于collection_b,它将返回True ...

是不是有一种独特的方式来包含这两种情况?

python dictionary

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

Django模型DateTimeField设置auto_now_add格式或修改序列化程序

我的模型中有此字段:

createdTime = models.DateTimeField(_('Creation date'), help_text=_('Date of the creation'),
                                   auto_now_add=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

并以以下格式保存:

2016-05-18T15:37:36.993048Z

所以我想将其转换为这种格式,DATE_INPUT_FORMATS = ('%d-%m-%Y %H:%M:S')但我不知道在哪里做。

我有一个简单的序列化程序类,可以覆盖它来修改格式吗?还是创建一个get_date()模型方法?

class ObjectSerializer(serializers.ModelSerializer):
    """
    Serializer for object.
    """
    class Meta:
        model = Object
Run Code Online (Sandbox Code Playgroud)

我的设置:

DATETIME_FORMAT = '%d-%m-%Y %H:%M:%S'

USE_I18N = True

USE_L10N = False

USE_TZ = False
Run Code Online (Sandbox Code Playgroud)

python django serialization datetime python-datetime

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

检查是否可以使用python中的字符列表创建字符串的最快方法

我需要检查是否可以使用字符列表创建字符串并返回True或False.

我正在使用list.count或collections.Counter的不同解决方案.

我也在使用这个解决方案,我不需要通读字符列表:

def check(message, characters):
    try:
        [list(characters).remove(m) for m in message]
        return True
    except:
        return False
Run Code Online (Sandbox Code Playgroud)

有最快的方式吗?对于一个非常非常大的角色列表.计数器和列表计数似乎较慢.不知道是否有快速的pythonic方式来做到这一点.

例:

message = "hello"
characters = "hheellooasdadsfgfdgfdhgfdlkgkfd"

check(message, characters) # this should return True or False
# characters can be a veeeeery long string
Run Code Online (Sandbox Code Playgroud)

重复事项,例如characters ="hheloo"不适用于message ="hello"

python

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

typespec中的二进制,String.t,char_list和[char]之间的区别

定义typespec时,binary,String.t,char_list,[char]等之间有何区别?

@spec method(binary) :: binary
Run Code Online (Sandbox Code Playgroud)

@spec method(String.t) :: String.t
Run Code Online (Sandbox Code Playgroud)

它们相等吗?Doc说:

  • 二进制用于Elixir字符串。
  • char_list用于Erlang字符串。定义为[char]。

elixir typespec

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

模块 ConnCase 未加载且无法找到

无法弄清楚这个错误。

我有这个文件:

test/support/conn_case.ex

defmodule ProjectWeb.ConnCase do
  @moduledoc """
  This module defines the test case to be used by
  tests that require setting up a connection.

  Such tests rely on `Phoenix.ConnTest` and also
  import other functionality to make it easier
  to build common datastructures and query the data layer.

  Finally, if the test case interacts with the database,
  it cannot be async. For this reason, every test runs
  inside a transaction which is reset at the beginning
  of the test unless …
Run Code Online (Sandbox Code Playgroud)

testing elixir-mix phoenix-framework

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

Vim 使用空格而不是制表符缩进 JavaScript 文件

我有以下 vimrc 配置,该配置对于 Python 文件运行良好:

execute pathogen#infect()
syntax on
filetype plugin indent on
set tabstop=4
Run Code Online (Sandbox Code Playgroud)

所以当我按 Tab 时,它是 4 个空格的别名。

但它似乎不适用于 JavaScript 文件。

当我按 Tab 时,它总是为每个缩进添加一个 Tab 加 2 个空格。我可以接受两个空格,但如何用 4 个空格替换该制表符?

所有代码都用空格缩进我不想开始添加制表符/空格混合

我知道您可以为特定文件指定制表符/空格,但我无法使其工作

autocmd FileType javascript setlocal shiftwidth=1 tabstop=4
Run Code Online (Sandbox Code Playgroud)

javascript vim

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

用IEx调试phoenix测试

我知道您可以使用IEx调试webapp但是可以在测试中设置断点吗?

例如,在下面的测试中,我想检查conn中的内容或检查任何其他变量或宏.

defmodule HelloWeb.PageControllerTest do
  use HelloWeb.ConnCase
  require IEx
  test "GET /", %{conn: conn} do
    IEx.pry
    conn = get conn, "/"
    assert html_response(conn, 200) =~ "Welcome to Phoenix!"
  end
end
Run Code Online (Sandbox Code Playgroud)

为了使它能够与webapp一起使用,你必须运行phoenix.server iex -S mix phoenix.server

但在这种情况下测试不是webapp所以它抱怨:

Cannot pry #PID<0.406.0> at ... Is an IEx shell running?
Run Code Online (Sandbox Code Playgroud)

testing elixir phoenix-framework

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

Elixir将导入的函数重命名为别名

假设我正在测试属于Utils模块的函数

defmodule Test do
  alias Module.Utils

  test "test 1" do
    Utils.some_function?(...)
  end

  test "test 2" do
    Utils.some_function?(...)
  end
end
Run Code Online (Sandbox Code Playgroud)

我可以将该函数重构或简化为:

import Utils.some_function as test_func()
Run Code Online (Sandbox Code Playgroud)

所以我不必编写模块名称并简化函数名称

elixir

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