小编She*_*ard的帖子

带有序列化程序的 Django REST 框架 CurrentUserDefault()

我一直在尝试为我的模型添加一个“所有者”字段。我已经看过其他问题,但我仍然没有运气。理想情况下,当创建新笔记时,当前用户将设置在所有者字段中并且不可更改。

下面是我的模型、序列化程序和就我所知的 Note 视图。我猜 CurrentUserDefault() 函数需要额外的上下文,但我无法正确设置它。

视图.py

class NoteListCreateView(ListCreateAPIView):
    authentication_classes = (SessionAuthentication, TokenAuthentication)
    permission_classes = (DjangoModelPermissions,)
    lookup_field = 'pk'
    serializer_class = serializers.NoteSummarySerializer

    def get_queryset(self):
        qs = Note.objects.all()
        # general search
        query = self.request.GET.get('search')
        if query is not None:
            qs = qs.filter(
                Q(title__icontains=query) |
                Q(content__icontains=query)
            ).distinct()
        # title search
        query = self.request.GET.get('title')
        if query is not None:
            qs = qs.filter(title__icontains=query)
        # content search
        query = self.request.GET.get('content')
        if query is not None:
            qs = qs.filter(content__icontains=query)
        return qs
Run Code Online (Sandbox Code Playgroud)

序列化程序.py

class NoteSummarySerializer(serializers.ModelSerializer):
    owner = …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework python-3.7

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

使用CMake C ++ 17项目设置Travis CI

我正在尝试使用C ++ 17项目设置Travis CI。我们使用CLion进行开发,这意味着我们有一个自动生成的CMakeLists.txt文件。我是从命令行编译和运行C ++的新手。

据我了解,Travis使用的所有东西都已过时,需要进行更新才能与C ++ 17一起使用。到目前为止,我的.travis.yml看起来像这样,我确信它有很多问题。

dist: trusty
sudo: require

language: cpp
compiler: gcc

addons:
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - gcc-6
      - g++-6
      - cmake

script:
  - sudo ln -s /usr/bin/gcc-6 /usr/local/bin/gcc
  - sudo ln -s /usr/bin/g++-6 /usr/local/bin/g++
  - export CC=/usr/bin/gcc-6
  - export CXX=/usr/bin/g++-6
  - cmake --version
  - cmake CMakeLists.txt
  - cmake  --build . --target neat
Run Code Online (Sandbox Code Playgroud)

构建失败,因为无法导入C ++ 17库之一。

编辑添加了Travis错误消息。

$ git clone --depth=50 --branch=feature/travis-ci https://github.com/sheldonkwoodward/bNEAT.git sheldonkwoodward/bNEAT
Cloning into 'sheldonkwoodward/bNEAT'...
remote: Counting objects: 778, done.
remote: …
Run Code Online (Sandbox Code Playgroud)

c++ cmake travis-ci

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