Как получить доступ к полю из ForeignKey в Queryset в django?

Это мой models.py:

class Computer(models.Model):
    name = models.CharField(max_length=40)
    ip = models.GenericIPAddressField(blank=True, null=True, unique=True)

class Template(models.Model):
    data = models.JSONField(...)
    computer = models.ForeignKey(Computer,on_delete=models.CASCADE)

Когда я удаляю объект шаблона, из админки django, мне нужно сделать запрос API, поэтому я отредактировал метод delete(). Это работает нормально. Но это не работает для опции множественного удаления в django admin. Я уже знаю, что мне нужно отредактировать delete_queryset() в admin.py.

Мне нужно знать, как получить поле IP из Computer из кверисета, который возвращает метод delete_queryset().

Когда я делаю следующее в файле admin.py:

class TemplateAdmin(admin.ModelAdmin):

    def delete_queryset(self,request,queryset):
        print(queryset)
        print(queryset.values('computer'))
        ...

Когда я пытаюсь удалить несколько объектов шаблона (A, B и C). Я получаю следующий ответ: <QuerySet [<Template: A>, Template: B>, Template: C>]> <QuerySet [{'computer': 22}, {'computer': 21}, {'computer': 21}]>

22 и 21 - это идентификаторы компьютера, на которые ссылается ForeignKey в A, B и C.

Вопрос в том, как мне получить доступ к полю IP с этих компьютеров, чтобы я мог сделать запрос API в методе delete_queryset()?

Вернуться на верх