我有一个用于登录 django 项目的设置,我想使用assertLogs 进行测试。
我使用了文档中提供的示例:https://docs.python.org/3/library/unittest.html#unittest.TestCase.assertLogs
with self.assertLogs('foo', level='INFO') as cm:
logging.getLogger('foo').info('first message')
logging.getLogger('foo.bar').error('second message')
self.assertEqual(cm.output, ['INFO:foo:first message',
'ERROR:foo.bar:second message'])
Run Code Online (Sandbox Code Playgroud)
我的 django 设置如下:
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
'standard': {
'format': '%(asctime)s %(levelname)s %(name)s %(message)s'
},
},
'filters': {
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': {
'console': {
'level': 'INFO',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
},
'default': {
'level':'DEBUG',
'class':'logging.handlers.RotatingFileHandler', …
Run Code Online (Sandbox Code Playgroud) 当我在我的用户应用程序中执行 ```python -m unittest`` 时,我收到此错误:
TypeError: argument of type 'ConnectionHandler' is not iterable
Run Code Online (Sandbox Code Playgroud)
我正在 django 中自定义我的 User 模型,我想对其进行测试。我已经进行了迁移并且自定义 User 模型运行良好(我使用了一个新数据库),所以我希望能够成功运行测试。这是我的测试代码:
from django.test import TestCase
from django.contrib.auth import get_user_model
# Create your tests here.
class UsersManagersTests(TestCase):
def test_create_user(self):
User = get_user_model()
user = User.objects.create_user(email='normal@user.com', password='foo')
self.assertEqual(user.email, 'normal@user.com')
self.assertTrue(user.is_active)
self.assertFalse(user.is_staff)
self.assertFalse(user.is_superuser)
try:
# username is None for the AbstractUser option
# username does not exist for the AbstractBaseUser option
self.assertIsNone(user.username)
except AttributeError:
pass
with self.assertRaises(TypeError):
User.objects.create_user()
with self.assertRaises(TypeError):
User.objects.create_user(email='')
with self.assertRaises(ValueError):
User.objects.create_user(email='', …
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过覆盖to_internal_value
函数并显示带有ValidationError的错误消息来验证端点中的空字段,与以下答案非常相似:
序列化程序.py
def to_internal_value(self, data):
missing = []
for k in ['comments']:
try:
if data[k] == '':
missing.append(k)
except Exception as e:
missing.append(k)
if len(missing):
raise serializers.ValidationError("The following fields are required: %s" % ','.join(missing))
return data
Run Code Online (Sandbox Code Playgroud)
问题是我得到:Error: too many values to unpack (expected 2)
当raise serializers.ValidationError
指令被执行并且data
注释字段为空('')时:
(Pdb) data
<QueryDict: {'csrfmiddlewaretoken': ['<csrfmiddlewaretoken>'], 'comments': [''], 'user': ['']}>
Run Code Online (Sandbox Code Playgroud)
甚至用一个简单的字符串进行测试:
raise serializers.ValidationError("The following fields are required: comments")
我收到同样的错误。在 python 控制台中, raise …
python django validation serialization django-rest-framework
我正在寻找一种方法来连接 v-autocomplete 项目文本字段中的两个字段,
这是我的代码:
<ol>
<li>
<v-autocomplete
placeholder="Search a person"
prepend-inner-icon="mdi-magnify"
chips
clearable
dense
v-model="counterpart1"
item-value="id"
item-text="first_value"
:items="enrolled1"
/>
</li>
</ol>
Run Code Online (Sandbox Code Playgroud)
我期望这样的事情:
<ol>
<li>
<v-autocomplete
placeholder="Search a person"
prepend-inner-icon="mdi-magnify"
chips
clearable
dense
v-model="counterpart1"
item-value="id"
item-text="first_value + second_value"
:items="enrolled1"
/>
</li>
</ol>
Run Code Online (Sandbox Code Playgroud)
我试过这个:
item-text="first_value + second_value"
Run Code Online (Sandbox Code Playgroud)
和这个:
:item-text="`${first_value}, ${second_value}`"
Run Code Online (Sandbox Code Playgroud)
但我得到了[object Object]
。我发现了这个类似的问题,但我认为我的情况有点不同,我不明白如何以这种方式改变它。
任何帮助将不胜感激