diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index e375efdb77..d2964554b6 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -1491,7 +1491,7 @@ def do_send_messages(messages_maybe_none: Sequence[Optional[MutableMapping[str, # messages are only associated to their subscribed users. if message['stream'] is None: stream_id = message['message'].recipient.type_id - message['stream'] = Stream.objects.select_related("realm").get(id=stream_id) + message['stream'] = Stream.objects.select_related().get(id=stream_id) assert message['stream'] is not None # assert needed because stubs for django are missing if message['stream'].is_public(): event['realm_id'] = message['stream'].realm_id @@ -3947,8 +3947,7 @@ def do_remove_default_stream_group(realm: Realm, group: DefaultStreamGroup) -> N def get_default_streams_for_realm(realm_id: int) -> List[Stream]: return [default.stream for default in - DefaultStream.objects.select_related("stream", "stream__realm").filter( - realm_id=realm_id)] + DefaultStream.objects.select_related().filter(realm_id=realm_id)] def get_default_subs(user_profile: UserProfile) -> List[Stream]: # Right now default streams are realm-wide. This wrapper gives us flexibility diff --git a/zerver/models.py b/zerver/models.py index d03de3d6ce..17a67e75c1 100644 --- a/zerver/models.py +++ b/zerver/models.py @@ -1459,7 +1459,7 @@ def get_client_remote_cache(name: str) -> Client: @cache_with_key(get_stream_cache_key, timeout=3600*24*7) def get_realm_stream(stream_name: str, realm_id: int) -> Stream: - return Stream.objects.select_related("realm").get( + return Stream.objects.select_related().get( name__iexact=stream_name.strip(), realm_id=realm_id) def stream_name_in_use(stream_name: str, realm_id: int) -> bool: @@ -1493,14 +1493,14 @@ def bulk_get_streams(realm: Realm, stream_names: STREAM_NAMES) -> Dict[str, Any] # # This should be just # - # Stream.objects.select_related("realm").filter(name__iexact__in=stream_names, - # realm_id=realm_id) + # Stream.objects.select_related().filter(name__iexact__in=stream_names, + # realm_id=realm_id) # # But chaining __in and __iexact doesn't work with Django's # ORM, so we have the following hack to construct the relevant where clause upper_list = ", ".join(["UPPER(%s)"] * len(stream_names)) where_clause = "UPPER(zerver_stream.name::text) IN (%s)" % (upper_list,) - return get_active_streams(realm.id).select_related("realm").extra( + return get_active_streams(realm.id).select_related().extra( where=[where_clause], params=stream_names)