반응형
some_widget_instance.delete ()를 사용하여 위젯을 삭제하기 때문에 문제가 있습니다. 또한 재정의 delete () 메서드가있는 WidgetFile이라는 모델이 있으므로 WidgetFile이 삭제 될 때 하드 드라이브에서 파일을 삭제할 수 있습니다. 내가 가진 문제는 위젯을 삭제하면 다음과 같은 WidgetFiles가 있다는 것입니다.
class WidgetFile(models.Model):
widget = models.ForeignKey(Widget)
글쎄, 위젯을 삭제하면 WidgetFiles가 삭제되지만 delete () 메서드가 트리거되지 않고 추가 하드 드라이브 작업을 수행합니다. 어떤 도움이라도 대단히 감사합니다.
해결 방법
나는 그것을 알아. 저는이 위젯 모델에 이것을 넣었습니다.
def delete(self):
files = WidgetFile.objects.filter(widget=self)
if files:
for file in files:
file.delete()
super(Widget, self).delete()
이로 인해 각 관련 개체에서 필요한 delete () 메서드가 트리거되어 사용자 지정 파일 삭제 코드가 트리거되었습니다. 예, 데이터베이스 비용이 더 많이 들지만 어쨌든 하드 드라이브에서 파일을 삭제하려고 할 때 db를 몇 번 더 치는 것은 그렇게 큰 비용이 아닙니다.
참조 페이지 https://stackoverflow.com/questions/1534986
반응형
'파이썬' 카테고리의 다른 글
파이썬 자동화 된 Python에서 Java 로의 번역 (0) | 2021.01.24 |
---|---|
파이썬에서 목록을 자르는 방법 (0) | 2021.01.24 |
파이썬 목록의 열을 어떻게 합산 할 수 있습니까? (0) | 2021.01.24 |
파이썬 xml.etree.ElementTree를 사용하여 XML 선언을 작성하는 방법 (0) | 2021.01.24 |
파이썬 How to get the first column of a pandas DataFrame as a Series? (0) | 2021.01.24 |
댓글