我有一个模型:
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) 现在我有这样的代码:
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.parametrize在APITestCaseDRF 测试类中使用装饰器进行测试?
也许有另一种方法来参数化测试(但不是循环)?
django django-testing pytest django-rest-framework pytest-django
我正在学习有关 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