diff --git a/archivebox/api/v1_core.py b/archivebox/api/v1_core.py index 9881fb97..fd944901 100644 --- a/archivebox/api/v1_core.py +++ b/archivebox/api/v1_core.py @@ -77,7 +77,7 @@ class ArchiveResultFilterSchema(FilterSchema): id: Optional[UUID] = Field(None, q='id') search: Optional[str] = Field(None, q=['snapshot__url__icontains', 'snapshot__title__icontains', 'snapshot__tags__name__icontains', 'extractor', 'output__icontains']) - snapshot_uuid: Optional[UUID] = Field(None, q='snapshot_uuid__icontains') + snapshot_id: Optional[UUID] = Field(None, q='snapshot_id__icontains') snapshot_url: Optional[str] = Field(None, q='snapshot__url__icontains') snapshot_tag: Optional[str] = Field(None, q='snapshot__tags__name__icontains') @@ -227,7 +227,7 @@ def get_snapshot(request, snapshot_id: str, with_archiveresults: bool=True): request.with_archiveresults = with_archiveresults snapshot = None try: - snapshot = Snapshot.objects.get(Q(uuid__startswith=snapshot_id) | Q(abid__startswith=snapshot_id)| Q(pk__startswith=snapshot_id)) + snapshot = Snapshot.objects.get(Q(abid__startswith=snapshot_id)| Q(pk__startswith=snapshot_id)) except Snapshot.DoesNotExist: pass @@ -237,7 +237,7 @@ def get_snapshot(request, snapshot_id: str, with_archiveresults: bool=True): pass try: - snapshot = snapshot or Snapshot.objects.get(Q(uuid__icontains=snapshot_id) | Q(abid__icontains=snapshot_id)) + snapshot = snapshot or Snapshot.objects.get(Q(pk__icontains=snapshot_id) | Q(abid__icontains=snapshot_id)) except Snapshot.DoesNotExist: pass diff --git a/archivebox/core/admin.py b/archivebox/core/admin.py index e48e95a6..f441b9e5 100644 --- a/archivebox/core/admin.py +++ b/archivebox/core/admin.py @@ -294,7 +294,10 @@ class SnapshotAdmin(SearchResultsAdminMixin, admin.ModelAdmin): ) def identifiers(self, obj): - return get_abid_info(self, obj) + try: + return get_abid_info(self, obj) + except Exception as e: + return str(e) @admin.display( description='Title', diff --git a/archivebox/core/models.py b/archivebox/core/models.py index 5844c9a6..09ad94fa 100644 --- a/archivebox/core/models.py +++ b/archivebox/core/models.py @@ -140,6 +140,9 @@ class Snapshot(ABIDModel): keys = ('url', 'timestamp', 'title', 'tags', 'updated') + @property + def uuid(self): + return self.id def __repr__(self) -> str: title = self.title or '-' @@ -354,7 +357,7 @@ class ArchiveResult(ABIDModel): id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=True, unique=True, verbose_name='ID') abid = ABIDField(prefix=abid_prefix) - snapshot = models.ForeignKey(Snapshot, on_delete=models.CASCADE, to_field='id') + snapshot = models.ForeignKey(Snapshot, on_delete=models.CASCADE, to_field='id', db_column='snapshot_id') extractor = models.CharField(choices=EXTRACTOR_CHOICES, max_length=32) cmd = models.JSONField() diff --git a/archivebox/index/schema.py b/archivebox/index/schema.py index b30a9de8..5dfe4630 100644 --- a/archivebox/index/schema.py +++ b/archivebox/index/schema.py @@ -274,7 +274,7 @@ class Link: @cached_property def snapshot_uuid(self): - return str(self.snapshot.uuid) + return str(self.snapshot.id) @cached_property def snapshot_abid(self):