小编bro*_*son的帖子

angularjs ng-model选择不正确更新

我有一个非常简单的表单,其中包含所有状态+缩写的选择.当使用键盘导航第二个按键时,在某些情况下不会改变ng-model值.例如,如果您选择选择元素并点击T,它将正确选择田纳西州,TN将被放入ng模型.再次按下箭头或T会将显示的值更新为Texas,但ng-model仍设置为TN.奇怪的是,如果它有2个不同的字母,则不会发生这种情况,因此T后跟A正确地将AL放入ng模型中.

HTML看起来像这样:

<div>
    <label for="user_city">City</label>
    <input type="text" name="user_city" id="user_city" ng-model="user.city" />
    <label for="user_state">State*</label>
    <select name="user_state" id="user_state" ng-model="user.state" style="width: 228px" required>
        <option value="AL">Alabama</option>
        <option value="AK">Alaska</option>
        <option value="AZ">Arizona</option>
        <option value="AR">Arkansas</option>
        <option value="CA">California</option>
        <option value="CO">Colorado</option>
        <option value="CT">Connecticut</option>
        <option value="DE">Delaware</option>
        <option value="DC">District Of Columbia</option>
        <option value="FL">Florida</option>
        <option value="GA">Georgia</option>
        <option value="HI">Hawaii</option>
        <option value="ID">Idaho</option>
        <option value="IL">Illinois</option>
        <option value="IN">Indiana</option>
        <option value="IA">Iowa</option>
        <option value="KS">Kansas</option>
        <option value="KY">Kentucky</option>
        <option value="LA">Louisiana</option>
        <option value="ME">Maine</option>
        <option value="MD">Maryland</option>
        <option value="MA">Massachusetts</option>
        <option value="MI">Michigan</option>
        <option value="MN">Minnesota</option>
        <option value="MS">Mississippi</option>
        <option value="MO">Missouri</option>
        <option value="MT">Montana</option>
        <option value="NE">Nebraska</option>
        <option value="NV">Nevada</option> …
Run Code Online (Sandbox Code Playgroud)

angularjs

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

升级到django-rest-framework 3.5.3后不允许使用HEAD方法

我们正在将django-rest-framework从3.1.3升级到3.5.3.在升级之后,利用DefaultRouter生成URL的所有ModelViewSet和viewsets.GenericViewSet视图都不再允许HEAD方法调用.我搜索了发行说明和文档,但未能找到任何导致HEAD被禁止的设置或更改.

我能够通过继承DefaultRouter并改变路由默认值来解决这个问题,但我不认为这是最好的或正确的解决方案.从django-rest-framework问题和文档中读取,似乎django-rest-framework应该自动处理HEAD和OPTIONS方法.

@detail_route,@ list_route和从ApiView派生的视图允许GET方法自动获得HEAD和OPTION方法.

为什么升级后HEAD方法会消失?确保路径上允许HEAD方法的正确方法是什么?

我们的路由和ModelViewSet定义非常标准,这是一个非工作路由:

from rest_framework.routers import DefaultRouter
from user_profile import views

router = DefaultRouter(trailing_slash=False)
router.register(r'user_names', views.UserNameView)

urlpatterns = router.urls
Run Code Online (Sandbox Code Playgroud)

并且观点:

class UserNameView(mixins.ListModelMixin,
        mixins.RetrieveModelMixin,
        viewsets.GenericViewSet):
    queryset = User.objects.only(
        "id", "first_name", "last_name", "email",
        "mobile_phone", "photo", "is_active", "date_joined"
    ).select_related("photo").all()
    serializer_class = serializers.UserNameSerializer
Run Code Online (Sandbox Code Playgroud)

邮递员对HEAD电话的回应:

Status: 405 Method Not Allowed
Allow ?GET, OPTIONS
Content-Type ?application/json
Date ?Wed, 09 Nov 2016 20:50:41 GMT
Server ?WSGIServer/0.1 Python/2.7.12
Vary ?Cookie
X-Frame-Options ?SAMEORIGIN
x-xss-protection ?1; mode=block
Run Code Online (Sandbox Code Playgroud)

python django rest django-rest-framework

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

标签 统计

angularjs ×1

django ×1

django-rest-framework ×1

python ×1

rest ×1