小编pyr*_*ace的帖子

Django 1.8迁移.在数据库创建后添加DateTimeField.最佳做法?

所以有一次在我的第一次迁移之后进行了几次迁移,我决定将这些字段包括在内:

created = models.DateTimeField(auto_now_add=True)
modified = models.DateTimeField(auto_now=True)
Run Code Online (Sandbox Code Playgroud)

进入我的一个模特.我makemigrations给它的时候 You are trying to add a non-nullable field 'created' to episode without a default; we can't do that (the database needs something to populate existing rows).

所以我把它改成了

created = models.DateTimeField(auto_now_add=True, default=datetime.now)
Run Code Online (Sandbox Code Playgroud)

makemigrations再次尝试之后,它说at_api.Episode.modified: (fields.E160) The options auto_now, auto_now_add, and default are mutually exclusive. Only one of these options may be present.

好的,所以我继续前进并删除了auto_now_add

created = models.DateTimeField(default=datetime.now)
Run Code Online (Sandbox Code Playgroud)

我现在可以makemigrations没有任何问题.然后我删除default=datetime.now并替换它auto_now_add=True,并再次迁移没有任何问题.但是,我不禁觉得这可能不是最好的做事方式.我觉得项目后期可能出现问题.

django datetime django-models django-migrations

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

从Django视图开始Scrapy

我对Scrapy的体验是有限的,每次我使用它时,它总是通过终端的命令.如何从我的django模板中获取我的表单数据(要删除的URL)以与scrapy进行通信以开始进行刮擦?到目前为止,我只想到从django的视图中获取表单的返回数据,然后尝试进入scrapy目录中的spider.py,将表单数据的url添加到spider的start_urls中.从那里开始,我真的不知道如何触发实际的爬行,因为我习惯于通过我的终端使用"scrapy crawl dmoz"等命令严格执行此操作.谢谢.

微小的编辑:刚刚发现了scrapyd ...我想我可能正朝着正确的方向前进.

python django scrapy web-scraping

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

"set:illegal option - "在一台主机上但不在另一台主机上

我在我的一个ubuntu虚拟机中编写了一个sh脚本,但是当我尝试在其他虚拟机中运行它时,它不起作用.两个VM应该是相同的.随着bash --version两个VM与回复:

GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Run Code Online (Sandbox Code Playgroud)

lsb_release -a,也回复:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.3 LTS
Release:        14.04
Codename:       trusty
Run Code Online (Sandbox Code Playgroud)

我的security_steps.sh脚本看起来像这样:

#!/bin/sh

set -e

if ! [ -f svn_up_action.sh ]; then …
Run Code Online (Sandbox Code Playgroud)

linux shell ubuntu sh

6
推荐指数
4
解决办法
7735
查看次数

Django Rest Framework:如何对搜索/过滤查询进行排序/排序?

我正在使用Django Rest Framework构建一个API,我希望有一个允许用户通过查询进行搜索的功能.目前, http://127.0.0.1:8000/api/v1/species/?name=human收益率:

{
    count: 3,
    next: null,
    previous: null,
    results: [
        {
            id: 1,
            name: "Humanoid",
            characters: [
                {
                    id: 46,
                    name: "Doctor Princess"
                }
            ]
        },
        {
            id: 3,
            name: "Inhuman (overtime)",
            characters: [

            ]
        },
        {
            id: 4,
            name: "Human",
            characters: [
                {
                    id: 47,
                    name: "Abraham Lincoln"
                }
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

它与我想要的非常接近,但并不完全相同.我希望它能使内部的第一个对象results成为id4的对象,因为该name字段与搜索查询最相关(?name = human).(我并不关心其余部分是如何排序的.)目前似乎是按升序对结果进行排序id.有人知道处理这个的好方法吗?谢谢!

这是我的api文件夹的views.py.

class SpeciesFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(name="name", lookup_type=("icontains"))
    class Meta:
        model = …
Run Code Online (Sandbox Code Playgroud)

python django rest django-filter django-rest-framework

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

django-rest-framework + swagger ui:ImportError:没有名为 rest_framework_swagger 的模块

我正在尝试将 django-rest-swagger ui 添加到我的 api 中,但ImportError: No module named rest_framework_swagger即使我已经完成了,我还是得到了pip install django-rest-swagger。我还可以通过pip list. 我也尝试过python manage.py syncdb,但并没有真正做任何事情。有人对我有什么建议吗?谢谢。

INSTALLED_APPS = (
'rest_framework',
'at_api',
'rest_framework_swagger',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
Run Code Online (Sandbox Code Playgroud)

编辑:系统路径信息

>>> import sys
>>> for p in sys.path: print p
...

C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages\psycopg2-2.5.3-py2.7-win-amd64.egg
C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages\six-1.8.0-py2.7.egg
C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages\cssselect-0.9.1-py2.7.egg
C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages\pyopenssl-0.14-py2.7.egg
C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages\lxml-3.4.1-py2.7-win-amd64.egg
C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages\queuelib-1.2.2-py2.7.egg
C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages\w3lib-1.10.0-py2.7.egg
C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages\twisted-14.0.2-py2.7-win-amd64.egg
C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages\zope.interface-4.1.1-py2.7-win-amd64.egg
C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages\zipline-0.7.0-py2.7.egg
C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages\pandas-0.15.1-py2.7-win-amd64.egg
C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages\pywin32-214-py2.7-win-amd64.egg
C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages\pyyaml-3.11-py2.7-win-amd64.egg
C:\windows\system32\python27.zip
C:\Users\Andrew\.virtualenvs\adventure_time\DLLs
C:\Users\Andrew\.virtualenvs\adventure_time\lib
C:\Users\Andrew\.virtualenvs\adventure_time\lib\plat-win
C:\Users\Andrew\.virtualenvs\adventure_time\lib\lib-tk
C:\Users\Andrew\.virtualenvs\adventure_time\Scripts
C:\Python27\Lib
C:\Python27\DLLs
C:\Python27\Lib\lib-tk
C:\Users\Andrew\.virtualenvs\adventure_time
C:\Users\Andrew\.virtualenvs\adventure_time\lib\site-packages
>>>
Run Code Online (Sandbox Code Playgroud)

追溯:

Traceback (most recent call last): …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework swagger-ui

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

在 Scrapy 中连接 Xpath 嵌套文本

我一直在尝试将一些嵌套文本与 Scrapy 中的 xpath 连接在一起。我认为它使用 xpath 1.0?我看了一堆其他帖子,但似乎没有什么是我想要的

这是 html 的特定部分(实际页面http://adventuretime.wikia.com/wiki/List_of_episodes):

<tr>
<td colspan="5" style="border-bottom: #BCD9E3 3px solid">
    Finn and Princess Bubblegum must protect the <a href="/wiki/Candy_Kingdom" title="Candy Kingdom">Candy Kingdom</a> from a horde of candy zombies they accidentally created.
</td>
</tr>

<tr>
<td colspan="5" style="border-bottom: #BCD9E3 3px solid">
Finn must travel to <a href="/wiki/Lumpy_Space" title="Lumpy Space">Lumpy Space</a> to find a cure that will save Jake, who was accidentally bitten by <a href="/wiki/Lumpy_Space_Princess" title="Lumpy Space Princess">Lumpy Space Princess</a> at Princess …
Run Code Online (Sandbox Code Playgroud)

html python xpath scrapy web-scraping

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

如何将angularfire(angular + firebase)项目推送到heroku?

关于heroku的最接近的教程是我正在做的是节点教程,但这对我的目的来说并不完全正确.我有一个angularfire项目,没有节点的东西.我该如何处理?也许我甚至不需要heroku?什么是让我的东西在线更好的方法?谢谢!

heroku angularjs firebase angularfire

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

angularfire:使用$ asArray()从我的工厂获取Firebase数组时遇到问题

我有一个从Firebase获取数据的工厂,我希望我的控制器能够访问它.但是,当我在我的控制器中调试数据时,它不是我期望它的数组[10],而是添加了键0,1,2,... 10,$$的数组, $$错误,$$移动,......等等.但是,当我跳过使用工厂,并在我的firebase ref中直接在我的控制器中使用$ asArray()方法时,它很好地显示为数组[10]

在我的工厂,这就是它的样子......

var listingsref = new Firebase("https://something.firebaseio.com");
var sync2 = $firebase(listingsref);
var products = sync2.$asArray();
factory.getProducts = function(){
    return products;
};
Run Code Online (Sandbox Code Playgroud)

调节器

$scope.products = marketFactory.getProducts();
Run Code Online (Sandbox Code Playgroud)

我的控制器中的console.log($ scope.products)应该是Array [10],但它是一个带有数据的数组+更多的$$方法.有谁知道发生了什么?谢谢

编辑:完整的工厂文件

(function(){
var marketFactory = function($firebase){
    var listingsref = new Firebase("https://something.firebaseio.com");
    var sync2 = $firebase(listingsref);
    var products = sync2.$asArray();

    var factory = {};
    factory.getProducts = function(){
        console.log(products);
        return products;
    };

    factory.getProduct = function(productId){
        for(var x = 0; x<products.length ;x++){
            if(productId == products[x].id){
                return {
                    product:products[x],
                    dataPlace:x
                };
            } …
Run Code Online (Sandbox Code Playgroud)

arrays angularjs firebase angularfire

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

Scrapy Xpath 如何处理表中标签之间的缺失数据?

嗨,我正在使用python 的scrapy 从站点上刮下一张表,所以我必须使用scrapy 的Selector xpath 来执行此操作。我正在考虑获取表格的所有数据内容,然后将其与表格标题一起压缩 (zip()),以便在我的最终数据中,表格的每个数据内容都与代表它的标签相匹配。但是,我注意到表的某些部分没有值.. 就像 in 而不是

<td>24</td>
Run Code Online (Sandbox Code Playgroud)

只是

<td></td> 
Run Code Online (Sandbox Code Playgroud)

当我抓取时,scrapy 会跳过空标签并获取下一个值。这搞砸了我要压缩的方式,因为由于缺少值,所有东西都可能向左移动一个或多个。那么..有没有办法让scrapy的选择器xpath返回某种空标识符,那里缺少某些东西,以便我可以解释丢失的信息?或者,也许有更好的方法来解决我的问题,以防止发生此问题?谢谢!

编辑:xpath 看起来像......

Selector(response).xpath("tbody/tr/td/text()").extract()
Run Code Online (Sandbox Code Playgroud)

python xpath scrapy web-scraping

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

AngularJS Ng-click仅适用于一次或两次

Ng-click触发ng-show与之前的相反.当ng-show附加到前两个项目中的p标签时,它可以正常工作.当ng-show附加到ul时,事情开始变得越来越糟糕.如果它是第一次点击页面,我可以像一次点击错误的触发器,点击其他东西......它将停止工作.这里发生了什么?谢谢.

(function(){
    var faqApp = angular.module('faqApp',[]);
    var faqController = function($scope){
        $scope.paid_info = false;
        $scope.schedule_info = false;
        $scope.qualifications_info = false;
        $scope.paid = function(){
            $scope.paid_info = !$scope.paid_info;
            $scope.schedule_info = false;
            $scope.qualifications = false;
        };
        $scope.schedule = function(){
            $scope.schedule_info = !$scope.schedule_info;
            $scope.paid_info = false;
            $scope.qualifications_info = false;
        };

        $scope.qualifications = function(){
            console.log("YAAYA");
            $scope.qualifications_info = !$scope.qualifications_info;
            $scope.paid_info = false;
            $scope.schedule_info = false;

        };
    };
    faqController.$inject = ['$scope'];
    angular.module('faqApp').controller('faqController', faqController);
}());
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
  <meta charset="utf-8">
  <title>JS Bin</title>
</head>
<body> …
Run Code Online (Sandbox Code Playgroud)

angularjs

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