使用
我有一个这样写的序列化器:
class SubProjectAsFKWithAttachedFieldsSerializer(DynamicModelSerializer):
# attached_fields = AttachedFieldSerializer(embed=True, many=True)
try:
scope_object = UgField.objects.get(dotted_path='global.scope')
scopes = DynamicRelationField(
AttachedFieldWithDirectValuesSerializer,
source='attached_fields',
many=True,
embed=True,
read_only=True,
queryset=AttachedField.objects.filter(ug_field=scope_object)
)
except ObjectDoesNotExist:
scopes = DynamicRelationField(AttachedFieldWithDirectValuesSerializer,
source='attached_fields',
many=True,
read_only=True,
embed=True)
当前,在setUp方法中几乎所有我的tests.py
中,我都有
self.global_scope_field = UgFieldFactory(dotted_path='global.scope', name='Scope')
出于某些原因,此行
scope_object = UgField.objects.get(dotted_path='global.scope')
尽管我已使用DjangoModelFactory
“实例化”,但保持失败的原因
我应该做些什么来确保在运行测试时该行始终通过?
更新
global.scope
作为字段dotted_path
的值。python manage.py test
时,我才会遇到此问题。我也尝试设置
(self.global_scope_field, created) = UgField.objects.get_or_create(dotted_path='global.scope', name='Scope')
使用我的setUp
方法。
但是我遇到了同样的问题
答案 0 :(得分:0)
要使用.get()
检索对象,必须将其保存。
self.global_scope_field = UgFieldFactory(dotted_path='global.scope', name='Scope')
self.global_scope_field.is_valid()
self.global_scope_field.save()
或者,您可以只创建没有表单的对象。
self.global_scope_field = UgField.objects.create(dotted_path='global.scope', name='Scope')