小编Der*_*rek的帖子

南迁移错误 - 关系已经存在

背景:在我的项目中添加djangoratings之后,我尝试了运行

django-admin.py schemamigration djangoratings --initial 
--settings=myapp.settings.local 
Run Code Online (Sandbox Code Playgroud)

这导致了schemamigration的未知命令错误.我试图通过将我的项目目录添加到PYTHONPATH来解决此错误(我使用的是virtualenv和virtualenvwrapper).这解决了schemamigration的未知命令错误,但是我想我在项目目录上面为PYTHONPATH指定了一个目录,当为djangoratings运行初始迁移时,它抱怨与whoosh有关(我在我的项目中使用) .我更改了PYTHONPATH目录并尝试运行

django-admin.py schemamigration djangoratings --initial 
--settings=myapp.settings.local
Run Code Online (Sandbox Code Playgroud)

再次.然后我运行了migrate命令.这是我收到错误时:

django.db.utils.DatabaseError: relation "djangoratings_vote" already exists
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方式一直迁移:

django-admin.py migrate djangoratings zero --settings=myapp.settings.local
Running migrations for djangoratings:
- Migrating backwards to zero state.
< djangoratings:0006_add_cookies
< djangoratings:0005_add_exclusions
< djangoratings:0004_rethink_recommendations
< djangoratings:0003_add_correlations
< djangoratings:0002_add_mean_and_stddev
< djangoratings:0001_initial
Run Code Online (Sandbox Code Playgroud)

然后再次运行 - 初始化,但执行migrate命令后发生了同样的错误.

我查看了数据库中的表列表,并没有看到任何djangoratings_vote.

我目前的djangoratings迁移清单如下:

0001_initial.py                   0006_add_cookies.py
0001_initial.pyc                  0006_add_cookies.pyc
0002_add_mean_and_stddev.py       0007_initial.py
0002_add_mean_and_stddev.pyc      0007_initial.pyc
0003_add_correlations.py          0008_initial.py
0003_add_correlations.pyc         0008_initial.pyc
0004_rethink_recommendations.py   0009_initial.py
0004_rethink_recommendations.pyc  0009_initial.pyc
0005_add_exclusions.py            __init__.py
0005_add_exclusions.pyc           __init__.pyc
Run Code Online (Sandbox Code Playgroud)

我如何解决关系"djangoratings_vote"已经存在的错误?最好用南?

migration django django-south

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

为什么twitter bootstrap输入:focus:invalid:当使用novalidate时触发焦点?

我的网络应用中有一个表单,要求用户输入网址.我现在决定将url输入的验证留给服务器,但是希望保留使用HTML5 url类型进行移动设备输入的好处.

这是我的表单代码:

    <form method="post" action="." required novalidate>{% csrf_token %}
        <fieldset>
            <legend>{% trans "Add Resource Link" %}</legend>
            <div class="well">
                <label for="id_url"><strong>{% trans "Web Address" %}</strong></label>
                {% if form.url.errors %}
                    <div class="alert alert-error">{{ form.url.errors }}</div>
                {% endif %}    
                <div class="input-prepend">
                    <span class="add-on"><i class="icon-link"></i></span>
                    <input id="id_url" name="url" type="url" placeholder="http://www.example.com">                        
                </div>
                <div>   
                    <button type="submit" class="btn btn-primary">{% trans "Add Link" %}</button>
                </div>                    
            </div>
        </fieldset>
    </form>
Run Code Online (Sandbox Code Playgroud)

虽然在表单上使用novalidate允许我提交由服务器验证捕获的无效URL,但输入:focus:invalid:仍然会触发焦点并且似乎正在使用默认的HTML5正则表达式验证网址,这是一个或多个字母然后是冒号.

没有输入的表单的屏幕截图:

没有输入的表单的屏幕截图

带有无效输入的表单的屏幕截图:

带有无效输入的表单的屏幕截图

根据HTML5中的url验证的默认正则表达式,有效输入的表单的屏幕截图(我想?):

根据HTML5中的url验证的默认正则表达式,有效输入的表单的屏幕截图(我想?)

我的问题是为什么输入:focus:invalid:当使用novalidate时焦点被触发?我认为这可能是我不理解的预期行为.确保输入的建议最佳做法是什么:焦点:无效:焦点未被触发 - 即我不想在客户端进行任何输入验证 - 在至少目前还没有.我正在使用Chrome版本25.0.1364.172在linux(Ubuntu 12.04)上进行测试.

javascript validation html5 twitter-bootstrap

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