小编oct*_*vio的帖子

Django OneToOneField 初始化

我正在构建一个基于 django 的应用程序,它从客户端计算机(例如内存)接收一些信息并将其保存到数据库中。

为此,我创建了以下模型:

class Machine(models.Model):
   uuid = models.UUIDField('UUID', primary_key=True, default=uuid.uuid4, editable=False)
   name = models.CharField('Name', max_length=256)
   memory = models.OneToOneField('Memory', on_delete=models.CASCADE, null=True)

   def save_data(self, data):
        if not self.memory:
            memory = Memory()
            memory.save()
            self.memory = memory
            self.save()
        self.memory.total = data['memory_total']
        self.memory.used = data['memory_used']
        self.memory.cached = data['memory_total']
        self.memory.save()
Run Code Online (Sandbox Code Playgroud)

现在对于内存,我有以下模型:

class Memory(models.Model):
    total = models.IntegerField(default=0)
    used = models.IntegerField(default=0)
    cached = models.IntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)

为了在我从客户端收到数据时将数据保存到机器模型,我调用了 save_data() 方法。在那里我测试是否已经有一个 self.memory 对象,如果没有,我在添加数据之前先创建它。

现在,即使它按预期工作,我想知道是否有更好,更干净的方法来实现这一目标。是否可以将我所有的 OneToOne-Fields 初始化为引用类型的空实例,这样我就不需要每次都这样做?

django model initialization one-to-one

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

使用 ncurses 和 cmake 链接期间未定义的引用

我试图通过包含以下头文件在我的 C++ 程序中使用 ncurses:

#include <curses.h>
#include <menu.h>
#include <stdlib.h>
Run Code Online (Sandbox Code Playgroud)

我正在使用 CLion IDE,这是我的 CMakeList.txt:

cmake_minimum_required(VERSION 3.6)
project(LearnC)

set(CURSES_USE_NCURSES TRUE)
find_package(Curses REQUIRED)
include_directories(${CURSES_INCLUDE_DIR})

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)
add_executable(LearnC ${SOURCE_FILES})
target_link_libraries(LearnC ${CURSES_INCLUDE_DIR})
Run Code Online (Sandbox Code Playgroud)

编译进行得很顺利,但是在链接时出现以下错误:

[ 20%] Linking CXX executable LearnC
CMakeFiles/LearnC.dir/main.cpp.o: In function `main':
../LearnC/main.cpp:20: undefined reference to `initscr'
../LearnC/main.cpp:22: undefined reference to `clear'
../LearnC/main.cpp:23: undefined reference to `noecho'
../LearnC/main.cpp:24: undefined reference to `curs_set'
../LearnC/main.cpp:25: undefined reference to `cbreak'
../LearnC/main.cpp:26: undefined reference to `nl'
../LearnC/main.cpp:27: undefined reference to `stdscr'
../LearnC/main.cpp:27: undefined reference …
Run Code Online (Sandbox Code Playgroud)

c++ linker ncurses cmake clion

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

标签 统计

c++ ×1

clion ×1

cmake ×1

django ×1

initialization ×1

linker ×1

model ×1

ncurses ×1

one-to-one ×1