Каков эквивалент _emit на Linux?

Нет единого способа извлечения нескольких несвязанных моделей в одном QuerySet. Что вы можете сделать, это использовать наследование моделей, иметь базовую модель для всех моделей событий. Со следующей структурой модели:

class Event(models.Model):
    timestamp = models.DateTimeField()
    user = models.ForeignKey(User)
    ...

class WebhookSubscription(Event):
   ...

class WebhookEvent(Event):
   ...

class TokenRefresh(Event):
   ...

class LogEvent(Event):
   ...

Вы можете делать запросы напрямую, используя модель событий, например:

events = Event.objects.filter(user=user).order_by('timestamp')

Это даст вам экземпляры событий, которые не будут содержать данные для дочерних моделей. , Вы можете получить дочерний экземпляр от родителя точно так же, как и в случае с OneToOneField (вот как фактически django моделирует наследование, создавая две таблицы и связывая их внешним ключом):

event.webhooksubscription
event.webhookevent
event.tokenrefresh
event.logevent

Они будут возвращать экземпляры дочерней модели, если таковые существуют, и вызывают исключение ObjectNotFound , если у родителя нет связанного указанного экземпляра дочерней модели.

Этот подход позволил бы вам выполнять такие операции, как сортировка и нарезка на уровне базы данных, с недостатком дополнительной сложности модели (вам потребуется отдельный запрос для получения данных дочерней модели)

8
задан samgrover 9 April 2009 в 17:42
поделиться

1 ответ

Чтобы выдать байт 0x12 (например), выполните:

asm __volatile__ (".byte 0x12");

Хотя вы можете получить неожиданные результаты при включенной оптимизации .

15
ответ дан 5 December 2019 в 11:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: