小编riz*_*tas的帖子

ForeignKey与抽象类的关系

我是这样的:

class F(models.Model):
    class Meta:
        abstract = True

class C1(F):
class C2(F):

class D(F):
        pid = models.ForeignKey(Cx)
Run Code Online (Sandbox Code Playgroud)

其中Cx可以是C1或C2,但我不知道它是怎么做的.

任何人都可以引导我吗?谢谢

Python 3.3 Django 1.7

django django-models python-3.x

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

Django休息框架认证测试

我正在尝试使用JWT进行身份验证的测试用例,在这种情况下使用django-rest-framework-jwt,然后,curl我得到了下一个,所以:

curl -X POST -d "email=testuser@test.com&password=testing" http://localhost:8000/api/auth/token/
Run Code Online (Sandbox Code Playgroud)

得到:

{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjo0LCJlbWFpbCI6InRlc3R1c2VyQHRlc3QuY29tIiwiZXhwIjoxNDIyNTkxMTQ5LCJ1c2VybmFtZSI6InRlc3R1c2VyQHRlc3QuY29tIn0.OT8ggcZYWxcbSy0Vv8u5PA3QISIdarNXTVuvu4QQjnw"}
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的测试用例时:

class BaseTestCase(TestCase):

    def setUp(self):
        self.csrf_client = APIClient(enforce_csrf_checks=True)
        self.email = 'testuser@test.com'
        self.name = 'test user'
        self.password = 'testing'
        user = Usuario.objects.create_user(email=self.email, name=self.name, password=self.password)
        user.save()
        self.data = {
            'email': self.email,
            'password': self.password
        }
        self.url = '/api/auth/token/'


class ObtainJSONWebTokenTests(BaseTestCase):

    def test_jwt_login_json(self):
        """
        Ensure JWT login view using JSON POST works.
        """
        client = APIClient(enforce_csrf_checks=True)

        response = client.post(self.url, self.data, format='json')
        self.assertEqual(response.status_code, status.HTTP_200_OK, response.data)

    def test_jwt_login_json_incomplete_creds(self):
        """
        Ensure JWT login view …
Run Code Online (Sandbox Code Playgroud)

django django-authentication django-testing django-rest-framework

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

如何在Django Rest Framework中覆盖请求方法(从'PUT'到'POST')

我正在编写一个插件包装器来提供一个应用程序休息,问题是应用程序不处理PUT请求,然后我从resfull得到一个PUT请求并应该将请求的方法更改为POST请求.

我试过这个:

self.context['request'].method = 'POST'
Run Code Online (Sandbox Code Playgroud)

但显然不起作用

我怎么能这样做?谢谢

更新:

串行器代码:

class PageEditSerializer(serializers.ModelSerializer):
    """
    Serializer Class to edit and delete a Page.
    """
    raw = serializers.CharField()

    def save(self):

        #no works
        self.context['request'].method = 'POST'

        """call to waliki new function"""
        views.edit(self.context['request'], self.instance.slug)

    class Meta():
        model = Page
        fields = ('id', 'title', 'slug', 'raw', )
        read_only_fields = ('id', 'slug', )
Run Code Online (Sandbox Code Playgroud)

查看代码:

class PageEditView(generics.RetrieveUpdateAPIView):
    """
    A simple View to edit a Page.
    """
    lookup_field = 'slug'
    serializer_class = PageEditSerializer
    permission_classes = (permissions.AllowAny, …
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

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