小编Mar*_*rty的帖子

on_delete在Django模型上做了什么?

我对Django很熟悉,但最近注意到on_delete=models.CASCADE模型中存在一个选项,我搜索了相同的文档,但找不到更多:

在Django 1.9中更改:

on_delete现在可以用作第二个位置参数(以前它通常只作为关键字参数传递).它将是Django 2.0中的必需参数.

一个使用示例是

from django.db import models

class Car(models.Model):
    manufacturer = models.ForeignKey(
        'Manufacturer',
        on_delete=models.CASCADE,
    )
    # ...

class Manufacturer(models.Model):
    # ...
    pass
Run Code Online (Sandbox Code Playgroud)

on_delete做什么?(我想如果删除模型需要完成的操作)

怎么models.CASCADE办?(文档中的任何提示)

还有哪些其他选择(如果我的猜测是正确的)?

这个文档在哪里?

python django django-models

261
推荐指数
7
解决办法
14万
查看次数

RemovedInDjango19Warning:Model没有声明一个明确的app_label

经历过

Django 1.9弃用警告app_label

但答案无法解决我的问题,所以再问一遍.

我有一个应用程序添加到设置中的INSTALLED_APPS.

我什么时候跑manage.py runserver,我得到这个警告,

[trimmed path to project]/catalog/models.py:9: RemovedInDjango19Warning: Model class catalog.models.Category doesn't declare an explicit app_label and either isn't in an application in INSTALLED_APPS or else was imported before its application was loaded. This will no longer be supported in Django 1.9.
  class Category(models.Model):
Run Code Online (Sandbox Code Playgroud)

我的应用程序的代码,

signals.py

from django.db.models.signals import post_save
from django.dispatch import receiver
from models import Category

@receiver(post_save, sender=Category)
def someSignal(sender, **kwargs):
    pass
Run Code Online (Sandbox Code Playgroud)

apps.py

from django.apps import AppConfig

class CatalogConfig(AppConfig):
    name = 'catalog' …
Run Code Online (Sandbox Code Playgroud)

python django django-signals django-apps deprecation-warning

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

如何使用pytest测试Django模型?

我开始使用pytest.我已经配置了pytest,无论如何我都找不到使用pytest进行Django特定测试的资源.如何测试模型pytest_django

我已经问了一个关于单元测试的问题,

我如何有效地测试这个Django模型?

我想知道如何使用py.test编写相同的测试?

在模型下面添加以及在unittest中编写的测试.

被测模型是,

class User(AbstractBaseUser, PermissionsMixin):
    username = models.CharField(max_length=25, unique=True, error_messages={
        'unique': 'The username is taken'
    })
    first_name = models.CharField(max_length=60, blank=True, null=True)
    last_name = models.CharField(max_length=60, blank=True, null=True)
    email = models.EmailField(unique=True, db_index=True, error_messages={
        'unique': 'This email id is already registered!'
    })

    is_active = models.BooleanField(default=True)
    is_staff = models.BooleanField(default=False)

    date_joined = models.DateTimeField(auto_now_add=True)

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['username',]


    objects = UserManager()

    def get_full_name(self):
        return ' '.join([self.first_name, self.last_name])

    def get_short_name(self):
        return self.email

    def __unicode__(self):
        return self.username
Run Code Online (Sandbox Code Playgroud)

unittest书面的, …

python django django-testing pytest pytest-django

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

在 Django 应用程序中嵌入 jupyter notebook/google colab

我想建立一个网站,并将能够创建单元格并在其中运行 python 代码的 jupyter 笔记本功能嵌入到我的网站中

为了创建一个网站,我使用 Django,我想嵌入 google collab 或 jupyter 笔记本

顺便说一句,我已经进行了足够的研究,并且一直被 StackOverflow 链接所困扰,其中没有关于此问题的答案或他们想要在 jupyter 笔记本中使用 django 的答案

预先感谢你们可以提供的任何指导或任何参考。

python django jupyter-notebook

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

具有布尔值的BehaviorSubject未按预期工作

我实现了一个简单的BehaviorSubject,

import {BehaviorSubject} from "rxjs";

class MyWeirdoClass {

  constructor() {}


  private st: Subject<boolean> = new BehaviorSubject<boolean>(null);


  changeSt(val:boolean){
    this.st.next(val);
  }


  val(){
    this.st.subscribe(res=>{
      if (res){
        console.log(res);
      }
    })
  }

  stStatus() {
    this.val();
    this.changeSt(true);
    this.val();
    this.changeSt(false);
    this.val();
  }


}
Run Code Online (Sandbox Code Playgroud)

现在运行时stStatus()会在控制台上记录以下输出.

true
true
Run Code Online (Sandbox Code Playgroud)

虽然我期待价值

false
true
false
Run Code Online (Sandbox Code Playgroud)

我的实施有什么问题?

javascript rxjs subject-observer behaviorsubject angular

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

如何使用 Celery multi worker 启用自动缩放?

该命令celery worker -A proj --autoscale=10,1 --loglevel=info通过自动缩放启动工作器。

在创建具有 multi 的 worker 时,

me@mypc:~/projects/x$ celery multi start myworker --autoscale=10,1
celery multi v4.1.0 (latentcall)
> Starting nodes...
    > myworker@mypc: OK

me@mypc:~/projects/kate$ celery multi show myworker
/home/me/.virtualenvs/kate/bin/python2.7 -m celery worker --detach -n myworker@mypc --pidfile=myworker.pid --logfile=myworker%I.log --executable=/home/me/.virtualenvs/x/bin/python2.7 
Run Code Online (Sandbox Code Playgroud)

如何启用多自动缩放?

python celery

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

使用 django 实现一个对请求进行计数的计数器

我只是尝试使用 Django,如何实现一个计数器来存储数据库上提供的请求计数?

我想统计 GET 请求的数量,我该怎么做才能让它工作?

我的模板,

<form action="/submit/" method="GET">
    <input type="text" name="q">
    <input type="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

我的看法

def result(request):
    name = request.GET['q']
    message = 'your name is %r ' % name
    return render(request, 'result.html', {'message': message})
Run Code Online (Sandbox Code Playgroud)

我想统计我按下提交按钮的次数。我应该启动一个新的应用程序counter还是存在其他方法来实现计数器?

python django counter

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

如何使用 python 解析电子邮件标头?

这是一个电子邮件标题示例,

header = """
From: Media Temple user (mt.kb.user@gmail.com)
Subject: article: A sample header
Date: January 25, 2011 3:30:58 PM PDT
To: user@example.com
Return-Path: <mt.kb.user@gmail.com>
Envelope-To: user@example.com
Delivery-Date: Tue, 25 Jan 2011 15:31:01 -0700
Received: from :po-out-1718.google.com ([72.14.252.155]:54907) by cl35.gs01.gridserver.com with esmtp (Exim 4.63) (envelope-from <mt.kb.user@gmail.com>) id 1KDoNH-0000f0-RL for user@example.com; Tue, 25 Jan 2011 15:31:01 -0700
Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:mime-version:content-type; bh=+JqkmVt+sHDFIGX5jKp3oP18LQf10VQjAmZAKl1lspY=; b=F87jySDZnMayyitVxLdHcQNL073DytKRyrRh84GNsI24IRNakn0oOfrC2luliNvdea LGTk3adIrzt+N96GyMseWz8T9xE6O/sAI16db48q4Iqkd7uOiDvFsvS3CUQlNhybNw8m CH/o8eELTN0zbSbn5Trp0dkRYXhMX8FTAwrH0=
Domainkey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type; b=wkbBj0M8NCUlboI6idKooejg0sL2ms7fDPe1tHUkR9Ht0qr5lAJX4q9PMVJeyjWalH 36n4qGLtC2euBJY070bVra8IBB9FeDEW9C35BC1vuPT5XyucCm0hulbE86+uiUTXCkaB 6ykquzQGCer7xPAcMJqVfXDkHo3H61HM9oCQM=
Message-Id: <c8f49cec0807011530k11196ad4p7cb4b9420f2ae752@mail.gmail.com>
Mime-Version: …
Run Code Online (Sandbox Code Playgroud)

python text-processing dictionary email-headers

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

Angular 2 调用服务仅在应用程序初始化时

我想要完成的是每个应用程序初始化只调用一次外部 API。

我有一个简单的服务,

@Injectable()
export class XService {
    url = "http://api.example.com"
    constructor(private _http:Http) {

    }

    callAnAPI(){
        console.log('made an external request");
        return this._http.get(url)
            .map(res=>res.json());
    }
}
Run Code Online (Sandbox Code Playgroud)

和两个组件,主要 appComponent

@Component({
  selector: 'my-app',
  template: `
    <div>
      Test
    </div>
  `
})

export class AppComponent {
    isLoading = true;
    results = [];

    constructor(private _service: XService){

    }

    ngOnInit(){
        Observable.forkJoin(
            this._service.callAnAPI()
            // some more services here
        )
        .subscribe(
            res => {
                this.results = res[0];
            },
            null,
            () => {this.isLoading = false}
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

和另一个与路由一起使用的组件

@Component({
  template: …
Run Code Online (Sandbox Code Playgroud)

angular2-services angular2-injection angular

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

Angular 2:如何将指令应用于净化后的 html/innerhtml

我正在开发一个应用程序,我从服务器获取 html 格式的响应。我正在使用DomSanitizer 的bypassSecurityTrustHtml 并将清理后的html 添加到我的组件() 中。

我的问题是响应中的一些元素包含标签来指示可以从该元素构建链接,例如:

<div thisIsActuallyaLink linkParam1="foo" linkParam2="bar">clickHere</div>
Run Code Online (Sandbox Code Playgroud)

我想创建一个应用于innerhtml的指令,但是当显示html时,它不是用我的指令编译的...

如果有人想知道为什么转换 html 不是在服务器端完成:响应在多个应用程序中使用,并且链接必须根据应用程序具有不同的相对 url :-(

innerhtml angular2-directives angular angular-dom-sanitizer

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