小编Leo*_*rdo的帖子

Sublime Text 2,jsp隐藏评论快捷方式

在jsp文件中,每当我点击CTRL+/快捷方式(在Windows上)时,该行都会被注释为"输出注释",这意味着在生成的html中可以看到注释:

<!-- Output comment -->
Run Code Online (Sandbox Code Playgroud)

我想要将此快捷方式与"隐藏注释"的生成绑定,这些注释将不会出现在输出中:

<%-- Hidden comment --%>
Run Code Online (Sandbox Code Playgroud)

我试图找到这个快捷方式的定义,但我没有运气.

jsp comments keyboard-shortcuts package sublimetext2

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

django-admin.py 找不到自定义设置文件

我有几个自定义的 django 设置,这基本上是我的项目结构:

MainProject/
  manage.py
  my_project/
    settings/
      base.py
      dev.py
      prod.py
Run Code Online (Sandbox Code Playgroud)

__init__.py我在目录中创建了文件以将它们标识为包。
我已将其导出DJANGO_SETTINGS_MODULE为指向所选的设置文件。
manage.py命令似乎处理得很好,我从来没有遇到过问题。

问题是无论我做什么都找不到任何设置文件。我已经尝试了几种可能的解决方案,但到目前为止似乎没有任何效果。django-admin.py

  1. 我用过--settings=my_project.settings.dev
  2. 我已经编辑并硬编码了manage.py让它指向 dev.py 文件
  3. 我在导入dev文件的和目录settings中创建了一个文件(依次导入 base.py)。MainProjectmy_project
  4. 我创建了一个settings文件,让 Django 知道它应该使用哪些文件settings

这是关于第4点:

from django.core.management import setup_environ
try:
    import my_project.settings.dev as settings
except ImportError:
    import sys
    sys.stderr.write("Couldn't find the settings.py module.")
    sys.exit(1)
setup_environ(settings)
Run Code Online (Sandbox Code Playgroud)

到目前为止似乎没有任何效果。

=====================================

解决方案:
我没有找到确切的解决方案,但由于对所选答案的评论,我了解到您基本上可以用于manage.py您可以在 中执行的所有操作django-admin.py,我不知道!因为事情确实对我有用,所以manage.py我对此很满意。

django django-admin django-manage.py django-settings

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

从本地git存储库访问Python包

git repository我的机器上有一个本地人,让我们说吧/develop/myPackage.
我目前正在开发它作为python包(一个Django应用程序),我想从我的本地访问它virtualenv.我试图将它的路径包含在我的PYTHONPATH(我在Mac上)

export PATH="$PATH:/develop/myPackage"
Run Code Online (Sandbox Code Playgroud)

该目录已__init__.py在其根目录和每个子目录中包含一个.无论我做什么,但我不能让它工作,python将不会看到我的包.

替代方案是:

  • 将我的本地更改推送到github并从那里安装我的virtualenv中的包 pip
  • 激活我的virtualenv并手动安装包 python setup.py install

由于我经常需要对我的代码进行更改,因此即使进行一些小的更改,最后两个解决方案也需要一直进行太多的工作.

难道我做错了什么?你会建议更好的解决方案吗?

python pip package virtualenv pythonpath

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

使用 django-allauth 的多个注册流程和配置文件类型

我有两种用户一种用户必须付费才能注册到该站点,并且他可以执行一系列操作。在第二个可以注册和登录免费(与他们的Facebook或谷歌或用户名和密码),并可以执行不同的一套动作。

两者都需要有个人资料和自定义字段,当然,用户类型会有所不同。

  • 是否可以使用django-allauth来实现?
  • 如果不是,使用另一个注册应用程序(例如django-registration)来处理付费用户和 django-allauth 用于社交登录是个好主意吗?他们会冲突吗?
  • 更好的方法来做到这一点?

django django-profiles django-registration django-users django-allauth

5
推荐指数
0
解决办法
325
查看次数

Django + Angular + Django-allauth

我正在创建一个Web应用程序,使用Django作为后端,Angular作为前端.

localhost:9000当Django正在运行时localhost:8000,Angular正在Yeoman堆栈上运行,我正在使用grunt-contrib-proxy将所有$http调用从angular at 重定向/api到django端口.因此,例如,如果Angular要求localhost:9000/api/hello将重定向到,localhost:8000/api/hello并且django将为其提供服务.

我打算设置Django Rest Framework/api路径提供所有Angular请求.

到现在为止还挺好.

现在,我已经配置了一个Django-allauth用于Oauth对第三方服务进行身份验证的工作安装.它使用普通的旧Django工作,但我不知道如何与Angular一起使用它.

唯一想到的是allauth通过django rest框架提供视图,但是在身份验证后重定向呢?我无法绕过它.

是不是更好地放弃这种方法并直接从前面(Angular)进行Oauth身份验证?

编辑:
我设法login从Angular 调用视图

  • grunt-contrib-proxy中我添加了帐户上下文和重写规则:

    context:  ['/api', '/accounts'],
    rewrite: {
      '^/api': '/api',
      '^/account': '/accounts'
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 我已经从angular进行了ajax调用,要求allaluth登录视图(例如对于github): $http.get('/accounts/github/login/?process=login')

问题是我回来了:

XMLHttpRequest cannot load https://github.com/login/oauth/authorize?scope=&state=BlaBla&redirect…ub%2Flogin%2Fcallback%2F&response_type=code&client_id=BlaBlaBla. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:9000' is therefore not allowed access. (index):1
Run Code Online (Sandbox Code Playgroud)

(BlaBla是我添加的).我想我做错了

django rest angularjs django-rest-framework django-allauth

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

如何检查 Dom 元素或 React 组件

创建 HOC 时,我不确定将包装哪种组件,有时它是另一个 React 组件,有时它可能是一个普通的 DOM 元素,如liand a

WrappedComp = myHOC(BaseComponent)
Run Code Online (Sandbox Code Playgroud)

MyHOC 会将额外的 props 传递给被包装的组件,并且在大多数情况下这会正常工作。

但有时当 BaseComponent 是例如 anli它不会接受额外的道具并且 React 会抛出警告Unkown Prop Warning说 DOM 元素不接受非标准 dom 属性:https : //facebook.github.io/react/warnings/unknown-道具.html

那么如何检查 BaseComponent 是 DOM 元素还是其他元素呢?如果是,我不会将额外的道具传递给它。

有一个更好的方法吗?

javascript dom reactjs

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

TransitionGroup和CssTransition:退出过渡不适用

我从旧的迁移CSSTransitionGroup到新的react-transition-group CSSTransitionTransitionGroup

我正在创建(破解)叠加层加载器,并且尝试在动画出现和消失时将动画应用于叠加层。

具体来说,当我将active=true道具传递给时,会将LoadingOverlayWrapperCSSTransition的东西添加到TransitionGroup(该Fade组件)中,以包裹叠加层以显示。

active=false随后CSSTransition从内取出TransitionGroup(直接孩子TransitionGroupIS null)。

这是代码的相关部分:

import React, {Children} from 'react'
import PropTypes from 'prop-types'
import {CSSTransition, TransitionGroup} from 'react-transition-group'
import LoadingOverlay from "./LoadingOverlay";
import styles from './Overlay.sass';


const FirstChild = props => Children.toArray(props.children)[0] || null;

const Fade = (props) => (
  <CSSTransition
    {...props}
    timeout={500}
    classNames={{
      appear: styles.appear,
      appearActive: styles.appearActive,
      enter: styles.enter,
      enterActive: styles.enterActive, …
Run Code Online (Sandbox Code Playgroud)

javascript animation reactjs react-transition-group

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

Django从原子块内的数据库刷新数据

我有一个复杂的代码块来处理 ORM 对象关系的创建/更新。

假设模型是 A 和 B,关联是 OneToOne A - BA.b_line指向 B)。

1)在创建/更新关联之前,需要更新一些A对象并将其保存到数据库中。在此操作期间,将计算并保存 A 对象的一些内部字段。

2)更新的A对象从db重新加载(因为我们需要派生的计算字段)并且可以继续与B对象的关联。

例子:

def update_and_associate(a_items):
    with transaction.atomic():
        for item in a_items:
            item.field_alpha = 1
            # updates item.field_beta depending on 
            # item.field_alpha 
            item.update_beta()
            item.save()  # Save to db

        with transaction.atomic:
            for item in a_items:
                item.refresh_from_db()
                b = item.b_line
                b.total = a.field_beta
                b.save()

# later...
try:
    update_and_associate(items)
except Exception as e:
    handle_exception(e)
Run Code Online (Sandbox Code Playgroud)

我将代码封装在嵌套原子事务块中,以便如果发生任何异常,则应回滚更改(带有 InnoDB 的 MySql)。

问题是,在第二个原子块中,当我重新加载项目时,refresh_from_db它们不同步,这意味着它们具有旧值,就好像第一个事务块根本没有运行一样。

我认为任何更改都会尽快提交,但如果出现异常,我们仍然有可能回滚。

所以我的问题是:通过将代码括起来transaction.atomic意味着要对数据库执行的所有写入修改都会推迟到我们退出该块为止?这可以解释为什么数据库中刷新的项目具有旧值。

django atomic django-models django-database

5
推荐指数
0
解决办法
1292
查看次数

Grunt-contrib-connect:如何在指定的浏览器中启动服务器

我对bower/grunt/yeoman环境很新.我正在尝试自定义默认的yeoman Webapp生成器生成的应用程序.

基本上当我启动grunt serve默认浏览器时会启动打开由grunt服务器提供的URL.我想指定webapp应该在哪个浏览器中打开,但我没有运气.

这些是我的gruntfile中的connect任务的默认选项(使用grunt-contrib-connect):

connect: {
        options: {
            port: 9000,
            open: true,
            livereload: 35729,
            // Change this to '0.0.0.0' to access the server from outside
            hostname: 'localhost',
        }
Run Code Online (Sandbox Code Playgroud)

我试图添加该字段,appName: 'Firefox'但我认为这不是我正在寻找的.我想这appName用于指定如何从命令行启动默认浏览器(例如使用open命令),我是对的吗?

是否可以在grunt-contrib-connect中指定浏览器或根本不指定?如果不是我应该如何完成这项任务?也许使用grunt-open

谢谢

node.js gruntjs grunt-contrib-watch grunt-contrib-connect

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

空字符串的 ModelSerializer 字段验证

我在使用 django rest 框架时遇到问题。
我的前台正在将数据发布到 drf,其中一个字段可能是null或 空字符串""

# models.py
class Book(models.Model):
    title = models.CharField(max_length=100)
    publication_time = models.TimeField(null=True, blank=True)


# serializers.py
from rest_framework import serializers
from .models import Book

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ('id', 'title', 'publication_time')
Run Code Online (Sandbox Code Playgroud)

publication_time可以是blank""

空白案例有效,实际上当我发布 json 时{"title": "yeah a book", "publication_time": none}一切都很好。

当我发送时,{"title": "yeah a book", "publication_time":""}我确实收到验证错误"Time has wrong format. Use one of these formats instead: hh:mm[:ss[.uuuuuu]]."

我尝试向序列化程序类添加字段验证器:

def …
Run Code Online (Sandbox Code Playgroud)

django validation serialization json django-rest-framework

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