小编pis*_*che的帖子

ForeignKey到抽象类(泛型关系)

我正在与Django建立个人项目,以培养自己(因为我喜欢Django,但我很想念技能).我有基本要求,我知道Python,如果不是三次,我会仔细阅读两次Django书.

我的目标是创建一个简单的监控服务,使用基于Django的Web界面,允许我检查我的"节点"(服务器)的状态.每个节点都有多个"服务".应用程序检查每个节点的每个服务的可用性.

我的问题是我不知道如何在我的数据库中表示不同类型的服务.我想到了两个"解决方案":

  • 单一服务模型,带有"serviceType"字段,并且字段很乱.(我在数据库建模方面没有很好的经验,但这看起来......对我来说"糟糕")
  • 多种服务模式.我喜欢这个解决方案,但后来我不知道如何在同一领域引用这些不同的服务.

这是我的models.py文件的简短摘录:(我删除了与此问题无关的所有内容)

from django.db import models

# Create your models here.                                                                                                                          
class service(models.Model):
    port = models.PositiveIntegerField()
    class Meta:
        abstract = True

class sshService(service):
    username = models.CharField(max_length=64)
    pkey = models.TextField()   

class telnetService(service):
    username = models.CharField(max_length=64)
    password = models.CharField(max_length=64)

class genericTcpService(service):
    pass

class genericUdpService(service):
    pass

class node(models.Model):
    name = models.CharField(max_length=64)
    # various fields                                                                                                                                
    services = models.ManyToManyField(service)
Run Code Online (Sandbox Code Playgroud)

当然,与ManyToManyField的界限是虚假的.我不知道该替代"*服务".我老老实实地寻找有关此问题的解决方案,我听说过"通用关系",三联表,但我并不真正了解这些事情.

而且,英语不是我的母语,所以进入数据库结构和语义,我对所读内容的知识和理解是有限的(但那是我的问题)

python django model-view-controller model

15
推荐指数
2
解决办法
7129
查看次数

是否有应用程序从django模型创建UML?

我正在寻找一种从Django应用程序Model结构生成UML图的方法.

Epydoc不能与Django模型一起使用,因为它需要导入django的settings.py并manage.py graph_models生成不可读的输出,不易解析且难以转换为UML.

是否有任何工具可以做到这一点?

python django uml

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

Python 3中的默认导出

在我正在进行的项目中,我将大量较大的文件分成小块,以便更容易使用.一个具体的例子是在Django中基于函数的视图创建基于类的视图:

# app/views/LoginView.py
class LoginView(View):
  ...

# urls.py
from app.views import LoginView
urlpatterns = [
  # Here, I have to use LoginView twice
  url(r'^login', LoginView.LoginView.as_view())
]
Run Code Online (Sandbox Code Playgroud)

在上面,LoginView当我想调用它时,我必须使用两次,因为导入LoginView导入模块,而不是模块中的方法,即使它们是相同的名称.理想情况下,我想避免LoginView.LoginView每次都打电话.

在Javascript中,我可以说export default function my_function() { ... }没有命名,当它被导入时它是默认的,例如import my_function from './some_module.js';

有没有办法在Python 3中做这样的事情?我不想这样做,from app.views.LoginView import LoginView因为,特别是在一个大的Django项目和类似的文件中urls.py,将每个导入都放在一个单独的行上是不可行的.

python django python-3.5

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

C中的矩阵乘法

我正在尝试用C解决矩阵乘法问题.问题中给出的矩阵大小(2x2)我编写了这段代码,但它没有像我期望的那样打印结果.我想我对C的规则缺少一点.

这段代码中我的错误是什么?

#include <stdio.h>
int main() {
    int matA[2][2]={0,1,2,3};
    int matB[2][2]={0,1,2,3};
    int matC[2][2];
    int i, j, k;
    for (i = 0; i < 2; i++) {
        for(j = 0; j < 2; j++) {
            for(k = 0; k < 2; k++) {
                matC[i][j] += matA[i][k] * matB[k][j];
            }
            printf("%d\n",matC[i][j]);
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

打印结果:

2 
3 
4195350
11
Run Code Online (Sandbox Code Playgroud)

c math matrix

6
推荐指数
3
解决办法
3万
查看次数

Django交叉表模型结构

我有一个系统模型和一个接口模型.接口是两个系统之间的组合.之前,此界面表示为Excel工作表(交叉表).现在我想将它存储在数据库中.

我尝试创建一个Interface模型,带有两个外键到System.这不起作用,因为:

  • 它在目标模型上创建两个不同的反向关系
  • 它不会避免重复(第一次和第二次重置交换)

我用过这段代码:

class SystemInterface(Interface):
    assigned_to = models.ManyToManyField(User)
    first_system = models.ForeignKey(System)
    second_system = models.ForeignKey(System)
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点?

我需要有对称的关系:系统是接口中的"第一"或"第二"应该是无关紧要的.

python django django-models django-orm

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

如何使参数的reverse_lazy()变得懒惰?

介绍

对于特定需求(django-jqgrid),我定义了一个类(表示一个Grid),我必须提供一个url属性.由于我只使用反向URL(没有静态定义),我用reverse_lazy()这个问题.

只要我不必传递参数,这就行得很好reverse_lazy().但是,如果我想Grid特定于某个对象(这里是a DocumentSet),那么这个url参数也需要特定于该对象,因此我需要为reverse_lazy()提供一个参数.

在运行时,我可以访问,DocumentSet因为我将它定义为对象的属性,并且我确保调用的第一个函数Grid将此对象作为参数,并正确设置属性.

第一次尝试

我尝试使用此代码:

class DocumentGrid(JqGrid):
    documentset = None
    model = Document
    url = reverse_lazy('document-grid-handler', kwargs = {'pk' : documentset.id, })

    def get_queryset(self, request):
        return self.documentset.documents
    def get_json(self, request, documentset):
        self.documentset = documentset
        return super(DocumentGrid, self).get_json(request)
Run Code Online (Sandbox Code Playgroud)

错误

但是当然,导入文件时会失败,因为NoneType object has no attribute 'id'.

第二次尝试

所以我尝试使用django.utils.functional.lazy(),通过将这个琐碎和愚蠢的函数添加到我的模型:

def get_id(self):
    return self.id
Run Code Online (Sandbox Code Playgroud)

并通过使用此代码:

class DocumentGrid(JqGrid):
    documentset = …
Run Code Online (Sandbox Code Playgroud)

django django-urls lazy-evaluation

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

Django MPTT:按深度过滤?

我想知道关于django-mptt的事情,因为我正在考虑将它用于工程协调项目.

我会有一个Model类(比如说'Interface'),在Tree中有一个到Model的ForeignKey(比如'Location').

我能否按照他们所指的位置深度过滤接口?深度是父母的数量.

我还不知道如何组织我的数据,这就是我要问的原因.我正在考虑使用django-mptt(与在部署时由循环创建的模型相对,每个模型对应一个树级别),但我害怕它会阻止我的某个点并迫使我审查我的整个项目.

python django django-models mptt django-mptt

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

如何在字符串中查找浮点数 - Python?

我想找到使用Python 3出现在字符串中的第一个浮点数.

我查看了其他类似的问题,但我无法理解它们,当我尝试实施它们时,它们不适合我的情况.

一个示例字符串

I would like 1.5 cookies please

python floating-point python-3.x

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