小编N.C*_*.C.的帖子

在 Django 中按文件大小过滤(FileField)

我有一个模型:

class MyModel(models.Model):
    file = models.FileField(verbose_name='File', upload_to="files/")
Run Code Online (Sandbox Code Playgroud)

我可以获取文件大小(以字节为单位):

size = my_model_instance.file.size
Run Code Online (Sandbox Code Playgroud)

如何在 Django 中按文件大小过滤?像这样的东西:

MyModel.object.filter(file.size__lt=128)
Run Code Online (Sandbox Code Playgroud)

django django-orm filefield

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

在 DRF 测试中使用 pytest 参数化

现在我有这样的代码:

from rest_framework.test import APITestCase

class MyTestClass(ApiTestCase):
    fixtures = ['some_fixtures.json', ]

    @pytest.mark.parametrize('field, reverse_ordering', [
        ('id', False),
        ('id', True)])
    def test_ordering(self, field, reverse_ordering):
        # some test function
Run Code Online (Sandbox Code Playgroud)

每次因该错误而失败时:

======================================================================
ERROR: test_ordering (my_module.tests.MyTestClass)
----------------------------------------------------------------------
TypeError: test_ordering() missing 2 required positional arguments: 'field' and 'reverse_ordering'
Run Code Online (Sandbox Code Playgroud)

如何@pytest.mark.parametrizeAPITestCaseDRF 测试类中使用装饰器进行测试?
也许有另一种方法来参数化测试(但不是循环)?

django django-testing pytest django-rest-framework pytest-django

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

JSON 解析错误 - 需要用双引号括起来的属性名称:第 11 行第 5 列(字符 257)”

我正在学习有关 Django Rest Framework 的课程。我似乎已经逐字复制了代码,但是,似乎存在一些我无法归零的错误。什么可能导致此错误?

基本上,我正在测试模型序列化器。我正在尝试发布以下数据。

{
        "id": 1,
        "author": "John Doe",
        "title": "Happy Birthday",
        "description": "20 years of ISS",
        "body": "Fancy content",
        "location": "Earth",
        "publication_date": "2020-06-11",
        "active": false,

    }
Run Code Online (Sandbox Code Playgroud)

我的序列化器类看起来:

class ArticleSerializer(serializers.ModelSerializer):

    time_since_publication = serializers.SerializerMethodField()

    class Meta:
        model = Article
        fields = '__all__'

    def get_time_since_publication(self, object):
        publication_date = object.publication_date
        now = datetime.now()
        time_delta = timesince(publication_date, now)
        return time_delta
Run Code Online (Sandbox Code Playgroud)

我的模型是:

class Article(models.Model):
    author = models.CharField(max_length=50)
    title = models.CharField(max_length=120)
    description = models.CharField(max_length=200)
    body = models.TextField()
    location = models.CharField(max_length=120)
    publication_date = models.DateField() …
Run Code Online (Sandbox Code Playgroud)

django django-models django-views django-serializer django-rest-framework

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