我在django中遇到多表继承问题.
让我们以银行账户为例.
class account(models.Model):
name = models……
class accounttypeA(account):
balance = models.float…..
def addToBalance(self, value):
self.balance += value
class accounttypeB(account):
balance = models.int…. # NOTE this
def addToBalance(self, value):
value = do_some_thing_with_value(value) # NOTE this
self.balance += value
Run Code Online (Sandbox Code Playgroud)
现在,我想为帐户类型添加一个值,但我拥有的只是一个帐户对象,例如acc = account.object.get(pk = 29).那么,谁是acc的孩子?
Django会自动在accounttypeA和accounttypeB中创建account_ptr_id字段.所以,我的解决方案是:
child_class_list = ['accounttypeA', 'accounttypeB']
for cl in child_class_list:
try:
exec(“child = ” + str(cl) + “.objects.select_for_update().get(account_ptr_id=” + str(acc.id) + “)”)
logger.debug(“Child found and ready to use.”)
return child
except ObjectDoesNotExist:
logger.debug(“Object does not exist, moving on…”) …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Django设置中读取一些环境变量,我在/home/user/.bashrc中定义了(后者在/etc/bash.bashrc中),但我得到的只是一个KeyError异常.我知道我的环境变量已设置,因为我可以在终端中打印它们(echo $ VAR_NAME).这应该是微不足道的.
这是我正在使用的代码.
from django.core.exceptions import ImproperlyConfigured
msg = "Set the %s environment variable"
def get_env_variable(var_name):
try:
return os.environ[var_name]
except KeyError:
error_msg = msg % var_name
raise ImproperlyConfigured(error_msg)
OS_DB_USER = get_env_variable('MY_USER')
OS_DB_PASS = get_env_variable('MY_PASS')
OS_DB_DB = get_env_variable('MY_DB')
OS_GAME_LOGS = get_env_variable('DIR_LOGS')
Run Code Online (Sandbox Code Playgroud)
我只是找不到遗漏的东西.有什么建议吗?
谢谢
编辑:使用mod_wsgi在Apache上运行.
我去年一直在用Django开发一个Web服务器应用程序.堆栈是Django + Apache + MySql.这个堆栈非常适合我们的需求.最近需要一些实时功能,并有机会在服务器应用程序中更改/重写很多东西.令我惊讶的是,Django不是这里最好的选择.
我一直在阅读很多(推,websockets,gunicorn ......很多东西...... http://curella.org/blog/django-push-using-server-sent-events-and-websocket/)但是我尚未管理,决定我是否使用Django,或者我是否应该使用更适合这项工作的新软件堆栈.与Django一起走似乎有点不自然.任何经验丰富的开发人员能指出我正确的方向吗?
因此,基本的问题是:当前的软件堆栈有哪些替代方案可用于构建实时Web应用程序?
谢谢
PS:不是母语为英语的人.:)
编辑:替代方案需要允许安全连接.
编辑2:我们开发的Web应用程序是游戏.
有谁知道如何在DIA中的序列图上表示if语句?
我正在尝试创建一些node.js插件.在插件内部,我有一个静态库的调用.一切都编译好,但是当我从javascript调用我的插件函数时,我得到以下内容:
module.js:356
Module._extensions[extension](this, filename);
^
Error: /home/.../Projects/NodeAddonComLibTest/build/Debug/addon.node: undefined symbol: _Z6ctest1Pi
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/.../Projects/NodeAddonComLibTest/doTest.js:1:75)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Run Code Online (Sandbox Code Playgroud)
我的插件代码如下:
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <node.h>
#include <v8.h>
using namespace v8;
using namespace std;
void ctest1(int *);
Handle<Value> setPort(const Arguments& args){
HandleScope scope;
if (args.Length() != 1) {
ThrowException(Exception::TypeError(String::New("Wrong number of arguments.")));
return scope.Close(Undefined());
}
// ========================= …Run Code Online (Sandbox Code Playgroud) 每次调用logger.critical,我的celery任务都不会向应用程序管理员发送电子邮件。
我正在构建Django应用程序。我项目的当前配置允许每次创建logger.critical消息时,应用程序的管理员都可以接收电子邮件。设置起来非常简单,我只是遵循了两个项目(celery和Django)的文档。出于某种原因(我不确定),在celery任务中运行的代码没有相同的行为,它不会在每次创建logger.critical消息时向应用程序管理员发送电子邮件。
芹菜实际上是否允许这样做?我是否缺少某些配置?有谁遇到这个问题并能够解决?
使用方法:
谢谢你的帮助。
有谁知道在 JMeter 中解码 Base 64 格式字符串的解决方案?
我必须解码响应,但我不想重新发明轮子......
我必须自己编写代码吗(希望不是)?
谢谢
我有一个小型 Golang 程序,我正在尝试连接到在 docker 容器中运行的 FTP 服务器(https://registry.hub.docker.com/r/atmoz/sftp)。
我的机器是 M1 Pro MacBook。
使用以下命令启动容器:
docker run -p 22:22 -d atmoz/sftp foo:pass:::upload
Go 版本是 1.17.13。
程序的代码代码如下:
package main
import (
"log"
"time"
"github.com/jlaffaye/ftp"
)
func main() {
c, err := ftp.Dial("localhost:22", ftp.DialWithTimeout(5*time.Second))
if err != nil {
log.Fatal(err, " cannot connect")
}
err = c.Login("foo", "pass")
if err != nil {
log.Fatal(err, "cannot login")
}
// Do something with the FTP conn
if err := c.Quit(); err != nil {
log.Fatal(err) …Run Code Online (Sandbox Code Playgroud)