Удалить экземпляр фабрики boy из другого экземпляра
У меня два FactoryBoy, и я пытался удалить первый из второго,
Я хочу добиться того, чтобы при удалении экземпляра ShareLinksFactory, связанный с ним WebShareFileFactoryBoy и соответствующий ему файл также удалялись.
Ниже представлен класс ShareLinksFactory:
class ShareLinksFactory(factory.django.DjangoModelFactory):
class Meta:
model = ShareLinks
id = factory.LazyFunction(create_id)
web_share_file_folder = factory.SubFactory(WebShareFileFactoryBoy)
create_user = UuidCifsUsers.objects.get(cifs_user='user_test').id
limit_datetime = factory.LazyFunction(lambda: timezone.now() + timedelta(days=30))
created_by_factory = True
WebshareFileFactoryBoy
class WebShareFileFactoryBoy(factory.django.DjangoModelFactory):
class Meta:
model = WebShareFileFolders
django_get_or_create = ('inode',)
name = factory.Faker('file_name', extension='txt')
path = factory.Faker('name')
inode = factory.Faker('random_number')
is_dir = False
@factory.post_generation
def create_file_on_disk(self, create, extracted, **kwargs):
self.name = self.name + str(uuid.uuid4())[:6] # these permit to make a unique name for the file
automatic_folder_path = os.path.join(NAS_PATH, 'Share/automatic/')
Path(automatic_folder_path).mkdir(parents=True, exist_ok=True)
full_path = os.path.join(automatic_folder_path, str(self.name))
file_size_mo = kwargs.pop('file_size_mo', None)
with open(full_path, 'w') as file:
file.write(
f'Name: {self.name} \n'
f'Is a folder: {self.is_dir} \n'
f'make with love: True \n'
f'where: {full_path}'
)
if file_size_mo:
file_size = file_size_mo * 1024 * 1024
file.seek(file_size - 1)
file.write('\0')
self.inode = os.stat(full_path).st_ino
self.path = 'Share/automatic/' + str(self.name)
self.save()
std, err, code = popen_wrapper([
'sudo', '/set_webshare_extattr.sh',
str(self.id),
full_path
])
Я пытаюсь переопределить функцию delete из класса, но получаю ошибку
django.core.exceptions.FieldError: Invalid field name(s) for model WebShareFileFolders: 'delete