I agree in principle, villas - that's why I turned on record versioning in 
the first place. But sometimes, occasionally, there is a genuine need to 
actually delete something to the point that ALL traces are REMOVED
   -  a confidential item that got added by mistake, an item for which you 
no longer have a right-to-use license, and MUST NOT be in your database, 
   - the accumulation over time of records that are obsolete, will never be 
accessed again, but are so numerous that they obscure the useful current 
info, 
   - etc.

A function to cull? Yes, I guess that's what I'm trying to do. 
But I need the name that web2py created for the uploaded  file - which is 
what I am trying to figure out how to retrieve, and is the topic of my 
original question

On Wednesday, October 9, 2019 at 9:06:10 AM UTC-7, villas wrote:
>
> I must confess that I had a sudden feeling of panic on seeing:  DELETE 
> xxx FROM yyy ...
> My experience is there is little or no benefit in deleting records.  
> Record versioning and archiving is the way to go.
> That is_active field may have a purpose after all!  
> And you can always write a function to cull associated images if you are 
> seriously short on space.
> All the best.
>
>
> On Wednesday, 9 October 2019 16:30:39 UTC+1, jim kaubisch wrote:
>>
>>
>>
>> On Tuesday, October 8, 2019 at 11:30:59 AM UTC-7, jim kaubisch wrote:
>>>
>>>
>>> In several forms I have fields like to one below
>>>
>>> Field('the_file'    , 'upload' , label=T('Audio File *'), 
>>>                                          default = False,
>>>                                         
>>>  uploadfolder=os.path.join(request.folder,'uploads/resources/audio')
>>>                                          ),
>>>
>>>
>>> When I delete the db record containing the result of processing the 
>>> field above, I also want to delete the actual uploaded file.
>>>
>>> If I "print"  db.audios.the_file I get a sensible file name, e.g. 
>>> "audios.the_file.87f39e4b2eac56a2.7331343035323830332e706466.mp3"
>>> but -  if I pass db.audios.the_file to os.path.join, I get an exception 
>>> - "EXCEPTION = join() argument must be str or bytes, not 'Field'"
>>> and  - if I pass str(db.audios.the_file) to os.path.join I end up with 
>>> something ending in 'uploads/resources/audio/the_file'
>>>
>>> Simple question. How do I get the name of the uploaded file in a form I 
>>> can use in os.path.join
>>>
>>> Thanks
>>>
>>
>>
>> turns out, I don't think auto delete works for me.
>>
>> I'm using "record_versioning", hence record delete doesn't actually 
>> delete the record and, as far as I can tell, there is no "I really mean 
>> delete not archive" option.
>> As far as I can tell, my only option (which I'm using) is to go directly 
>> to the db and delete the record there (DELETE xxx FROM yyy WHERE id=zzz). 
>> That indeed deletes the record and cascades, but bypasses the web2py 
>> "auto delete". After the deletion the uploaded files remain:-(
>>
>> Seems that without being able to get to the filename of the uploaded file 
>> there's no way to delete it, and if you delete the db record you've lost 
>> the only reference to the file so its now an orphan
>>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/9c54d7d4-d4de-4fa0-9b63-fed351595314%40googlegroups.com.

Reply via email to